Рассмотрим поток данных. Пользователь будет работать с графическим интерфейсом и вносить изменения. В тот момент, когда они вносят изменения, данные в графическом интерфейсе не соответствуют XML. Если пользователь решит сохранить данные, то простая операция сортировки (тривиальная, если используется JAXB) обеспечит обновление XML. Вам не нужно сравнивать каждое поле, в этом нет никакого смысла - конечно, вы проверили содержимое перед тем, как отправить их в файл. Если пользователь решает отменить, то сортировка не производится.
Нет необходимости делать резервную копию и сравнивать то, что уже есть в XML.
Однако, если пользователю необходимо отменить сохранение (например, вернуться к предыдущей конфигурации), вам потребуется структура резервного копирования (или поддержка стека моделей графического интерфейса в памяти). Я бы не рекомендовал такой подход, поскольку вы просто теряете излишнюю сложность. Пользователи, как правило, довольны кнопкой «Сохранить» или «Отмена», а не «Восстановить».