Hi Vince,
The basic problem, as with all logging, where you want to include the record "before the change" is that you need to make a snapshot before the change.
I think though yo may be approaching this from the wrong direction. For Delete's anyway, the easiest way to log them is via the ABC DeleteRecord method. The Web stuff is using ABC so by adding code to the DeleteRecord you catch all the deletes regardless of where they happen.
(Another way of doing this is as a "client-side-trigger" in the dictionary.)
For updates you need to embed code in pre-update, and post-update. (you can also do this with Deletes if you like, although there you'd use pr-delete and validate-delete)
You can't use the "normal" session values for your saved copy - as those will be overwritten by the "normal" functioning of the form. I recommend saving the whole record into a session value rather, using your own session value name.
Cheers
Bruce