GetTranslatedString() works with any narrow string, it does not work with wide strings, but in case of error it simply returns the input value and not empty string.
On windows, two reasons come into my mind, but both apply to narrow strings, so not only the _() macro would be affected. Either the compiler uses a wrong encoding to read the source file and interprets the strings as garbage or the execution charset of the application cannot represent the characters. wxWidgets always assumes narrow strings use the execution charset and converts them to its internal unicode representation, if that fails, it produces an empty string.