Когда объявление переменной или её инициализация находятся в том же файле, что и их использование - проблем не возникает.
Сложность в том, что экземпляр класса Options объявляется и инициализируется в файле "header.h", а используется в "Main.cpp" и "New.cpp".
Во всех трёх случаях результат получается корректный (проверил).
Если не вдаваться в подробности, то структура программы выглядит следующим образом:
header.h : Объявление и инициализация переменной options.
main.cpp: Подключает файлы header.h и New.h
New.cpp: Подключает файлы header.h.
Когда в файле New.cpp я объявлял переменную Options options, я хотел, чтобы она занимала одно место в памяти, что и одноимённая переменная объявленная (как extern) в header.h.
Такое же объявление присутствовало и в файле main.cpp. Именно это я подразумевал, когда писал, что
Самое странное, что в главной форме (при инициализации) стоит идентичный участок кода и не возникает никаких проблем.