Sounds like a very good approach, we are infact using something very very similar to this for our merge process and it is working fine.
[color=blue][font=Tahoma]What we are doing is firstly run compare of the branches and get the list of files which are either new in source or modified in source or files which are modified at source and modified at target.
[color=blue][font=Tahoma]
[color=blue][font=Tahoma]Then if files are new or modified at source only the just simply copy over the files (simple update and submit; in your case simple submit to staging).
[color=blue][font=Tahoma]IF the file is modified at source and target (case most suited for your requirement) then we use the Teamsite compare functionality and give control to user to merge the files, using Teamsite compare and merge screen. This part is done through a CGI screen which list of files in conflict and button in front of them to call Teamsite compare functionality and then merge.In between we also have email notification just like you have planned, these emails are send to workflow owner each time a report is generated and confirmation is sort to proceed with the workflow.