Насколько я понял проблему, все дело в механизме xRec. При первом обращении к записи xRec действительно содержит ее before image, а Rec начинает заполняться новыми данными. Дальнейшие многократные изменения полей записи, пока они не зафиксированы в БД, не меняют xRec, отчего и возникает этот эффект.
Закрытие формы завершает модификацию записи, и при последующей обработке новым xRec становится Rec, обновленный за время работы формы.
Если задача требует только такой логики, то можно воспользоваться глобальной переменной на форме (как SourceExpr элемента TextBox), в которую вводить новое значение поля и сравнивать его в xRec.SomeField. Все будет работать
Best regards & good luck!