В ходе личной переписки выяснили, версия ОС не причём.
Автору был дал совет использовать Юникод в программе. Однако как выяснилось, мой пример оказался не до конца Юникодным, по этому, его корректное отображение зависело от того, что указанно в Контрольной панели в Региональных настройках. Как оказалось, мало использовать wchar_t вместо char, нужно и саму функцию входа в программу использовать соответственную: вместо WinMain - wWinMain.
К сожалению для консольных версий прог использование wmain вместо main не даёт независимость от того что установлено в Контрольной панели в Региональных настройках. Консоль не использует Юникод вывод.
P.S. Хотелось бы дать рекомендацию по самой программе.
Вместо того что б предлагать выбор по определению языковой версии, лучше её определять. Например считывая атрибуты файла kernel32.dll проверять что там написано: Корпорация Мискрософт или Microsoft Corporation.
Не исключаю, что патчи, которые сообщают что они "не предназначены для данной языковой версии", проверяют это как-то по-другому, в этом случаи APIMonitor поможет определить как именно.