This had to do with wallet implementations I think - because not all can process upper case bech32 addresses.
You should avoid using such tools that can not process upper case bech32 addresses because that is a bug in their implementation as the said encoding is not case sensitive and should only reject mixed case strings.
some of them won't even allow prefix / substring that starts with bitcoin:BC1Q*******. (it is a bit irony that bitcoin: part is lower case, whilst address isn't)
The "bitcoin:" part is a URI scheme (
BIP-21) that not all wallets support. These are supposed to be a clickable link and after clicking them the information will be sent to your wallet which would fill the "payto" textboxes for you automatically. However, this may be obvious but it should not be entered manually in the address field since that would be rejected.
The reason why it is lower case is because it is not encoded as part of the address nor in the QR code. It is just part of the URI scheme.
Any tips on an work-around are appreciated!
There should not be any workarounds available since the whole point of designing bech32 encoding like this was to allow QR codes to be created using upper case letters as @nc50lc pointed out.