So it's not really a session problem is it? :-)
If you are going to update changes, why bother with the check? I mean, just update all fields, wether they changed or not. I won't be a big load on your db, and saves you a lot of trouble.
Otherwise you could do it in sessions. You could also (if it's not too much data) store the "old" version of the data in hidden fields inside the form itself.
That way the client would be submitting both the new and the original data, for easy comparison.