Если в 1-ом условии таймер TimerOff1 еще не сработал, и всё ушло в середину, то таймер как запомнил время старта (и состояние работы), так оно там и осталось. А при возврате в 1-е условие (если Auto1Cmd не упал), таймер смотрит прошедшее время с момента старта в прошлом (а может и позапрошлом (а может поза-поза ..(..))) входе в 1-ое условие.

Вынос из IF типа
Код:
TimerOff1(I := (Current > Hight_level) and Auto1Cmd, T := T_Off);
TimerOn1(I := (Current < Low_level) and NOT Auto1Cmd, T := T_On);
Auto1Cmd := not TimerOff1.Q and (Auto1Cmd or TimerOn1.Q);
Аналогично и с другими