I looked into the code and found something:
In the file https://gitlab.com/openlp/openlp/-/blob/master/openlp/core/display/render.py there are some lists of chords, prefixes and suffixes:
ENGLISH_NOTES = '(C|D|E|F|G|A|B|N\\.C\\.)?'
GERMAN_NOTES = '(C|D|E|F|G|A|B|H|N\\.C\\.)?'
NEOLATIN_NOTES = '(Do|Re|Mi|Fa|Sol|La|Si|N\\.C\\.)?'
CHORD_PREFIXES = '(=|\\(|\\|)*?'
CHORD_SUFFIXES = '(b|#|x|\\+|-|M|m|Maj|maj|min|sus|dim|add|aug|dom|0|1|2|3|4|5|6|7|8|9|\\(|\\)|no|omit)*?'
SLIM_CHARS = 'fiíIÍjlĺľrtť.,;/ ()|"\'!:\\'
Could it be, that the problem would be solved by adding "=" to the suffixes?
I noted something else, too: When I export a song with a [B=] chord, the xml marks it correctly as a chord. So, this seems to be in the first place a rendering issue.
I think, the rendering should be very robust, so that even there is a chord with an error in it, it is not mistaken for lyrics.