CreateFileBasedResourceManager будет работать только с двоичными файлами .resources (не с файлами .resx).
Если вы настаиваете на загрузке ресурсов из внешнего файла, а не встраиваете ресурсы в сборку,
вам нужно будет запустить утилиту командной строки resgen для генерации файла .resources.
Поэтому, если вы этого не сделали, сгенерируйте один для каждой поддерживаемой культуры.
В противном случае все выглядит нормально.
Но если вы предпочитаете встраивать ресурсы в сборку, в окне свойств установите для параметра Действия сборки значение Встроенный ресурс.
Если вы хотите также создать строго типизированный класс, заботящийся обо всей грязной работе,
установите пользовательский инструмент только для базового файла (инвариантный) на ResXFileCodeGenerator,
или PublicResXFileCodeGenerator, если вам это нужно (хорошо при создании сателлитных сборок).
Тогда вам не нужно заботиться о загрузке локализованных ресурсов самостоятельно.
Созданный класс делает все это за вас.
Для каждого ключа в ресурсе генерируется статическое свойство в сгенерированном классе, и вы просто вызовете это свойство,
это очень чистый и самый простой способ.
Если нет особых причин для загрузки ресурсов из файлов .resources,
я бы всегда рекомендовал встраивать их в сборку (an).