Если создавать класс, который будет хранить все параметры конфигурации, то зачем его делать абстрактным? Вы собираетесь от него наследоваться и он будет хранить какие-то абстрактные методы, обязательные для переопределения? В таком случае, почему он называется GlobalConfig?
Если речь идёт о смене архитектуры приложения, то с неё и надо начинать. Отвяжитесь от констант, они тут (насколько я могу судить по условию) создают больше проблем. Начиная работать с ООП, пожалуй, проще будет создать что-то типа
синглтона, который будет подгружать конфигурацию в какой-либо объект или массив. Нарисуйте прототип архитектуры на бумаге с областями видимости и контекстом и не придётся проклинать объектно-ориентированный подход.