Код:
ELSIF fb_Serial_Request.xError THEN
bNeedReset:=TRUE; // флаг необходимости очистки буферов
fb_Serial_Request(xExecute:=FALSE);
END_IF
В момент вызова fb_Serial_Request(xExecute:=FALSE); выходы "сбрасываются".
Поэтому глазами вы не видите xError и eError - к концу цикла, в котором они детектированы, они уже сброшены.
Вы можете добавить внутрь ELSIF счетчик ошибок для наглядности.
Или запускать таймер от NOT(fb_Serial_Request.xDone) - в стиле "успешных транзакций не было уже 5 секунд, пора бы зажечь аварийную лампу".