Класс Settings, поставляемый с .Net, очень удобен, и я использую его для большинства своих проектов. Единственное, на что следует обратить внимание - каждая новая версия приложения получает свой собственный файл настроек, поэтому убедитесь, что у вас есть разумные значения по умолчанию. Все настройки исчезают при распространении нового EXE-файла.
С глобальным состоянием очень трудно разобраться правильно, поэтому я обычно передаю соответствующие настройки различным объектам в их конструкторах или в свойствах. И я обычно не применяю изменения настроек к этим объектам, поскольку во многих случаях объекту очень сложно разумно иметь дело с изменением настроек. Скорее, я просто использую новые настройки для новых объектов по мере их создания. Если параметр должен быть применен немедленно, тогда я просто сбрасываю старый объект и создаю новый. Это зависит только от деталей заявки.
Если на экране настроек есть кнопка «Применить», я бы порекомендовал перезагрузить и отобразить все значения после их сохранения. Таким образом, дисплей обязательно будет содержать именно то, что на самом деле сохранено. Это может быть важно, если проанализированы какие-либо настройки. У меня были пользователи, которые вводили комбинацию месяца и дня в определенное поле, и формат, который они использовали, отличался от ожидаемого, поэтому сохраненное значение было неверным. При обновлении экрана после «Применить» ошибки такого рода можно сделать очевидными.
Надеюсь, это поможет!