in the upload and the update behavior, you are using a few fields from the recordsets on the page.
instead, create hidden fields, bind the hidden the recordset values, and in the upload and update behaviors use the hidden field bindings instead of the recordset bindings.
Hers a basic description of what was going wrong:
First the code order was such that the Recordset was cerated, before the data in the database was updated. SAo the recordset would contain the original data.
to make it so the recordset can contain the updated information, the update needs to occur before the recordset is created.
the problem with that, is that the recordset doesn't exist while the update is occurring, but you are trying to use data from it in the update. this is causing the update to fail.