It appears that the syntax you’re trying to use is language level which we don’t have any control over. I was able to find 2 slightly altered versions of the code you’re using that still compile without the escape characters.
FText MsgText4 = NSLOCTEXT("MyTestNamespace", "MsgText4", "<text color=""#77FF77AA" "shadowColor=""#FF0000FF" "shadowOffset=""[4,3]" ">test localization </text>");
FText MsgText5 = NSLOCTEXT("MyTestNamespace", "MsgText5", "<text color=#77FF77AA shadowColor=#FF0000FF shadowOffset=[4,3] >test localization </text>");
With MsgText4 there are additional quotes around the setting names (text color / shadowColor / ShadowOffset). With MsgText5 there are no quotes within the string text. If these do not work for what you’re trying to do, then using the escape character would be the proper solution.
Cheers