
И это только начало... Оно потянет за собой...
Не ту переменную ты взялся заменять

Дело в том, что дефайн ничего не хранит - нет в памяти "reset USB hub after start", есть только воздух, 0 в коде прошивки. А ты переменные сохраняешь в структуру и ЕЕПРОМ. Конечно же он ругается.
А вот FlagRegister1 в моём примере - вот он физический. И при записи в ЕЕПРОМ он будет сохранять актуальные значения восьми флагов сразу...
И текущие состояния из него читаются например:
if (bitRead(PEREM1) == 0) then...