Проблема локализации .NET, если вы используете многопоточность, заключается в том, что вам нужно установить культуру вручную для каждого потока, который вы создаете (в случае, если он отличается от культуры Windows, в случае, когда пользователь может выбрать нужный язык). Не наследуется от основного потока.
После создания нового потока и перед его запуском вы должны установить его Культура в Культуру основного потока (который обычно использует культуру окон по умолчанию).
Итак, система показывает хорошую CurrentCulture. Но что говорит текущий поток? Может быть, приложение по какой-то причине запускается с другой культурой, поэтому загружает файл ресурсов по умолчанию? В любом случае, нет причин, по которым вы не должны вручную устанавливать текущую культуру. В основном это нужно делать, когда вы хотите дать пользователю возможность изменить язык приложения.