Problem is most likely with triple codepage conversion. Fist you have your rc file, that can have different codepages. I guess, resources should be stored in UTF-16. So, conversion is made. Then you call LoadStringA, where they're converted back to Ansi. And then they're converted from Ansi to UTF-8. No wonder, that something can go wrong. Some "default" codepage settings are used at some point, that seem to be different on Win10 and Win11.
Try using LoadStringW, but use explicit UTF8Encode. PChars are tricky. Automatic codepage conversion doesn't work for them.