We spent a fair bit of time looking into this and here are the results
1) There were a few point on database maintenance that needed addressing (these items probably won't improve your save time but are good maintenance points anyway)
a) SQL's autoshrink switched off as per here http://blogs.msdn.com/b/sqlserverstorageengine/archive/2007/03/28/turn-auto-shrink-off.aspx
b) Compatibility level on SQL server to change to the version of SQL that's being run (2008 R2 in my case)
c) review table fragmentation and re-indexing jobs
2) There were a lot of decisions in a process that, when changed for calculations really speeded up the save from 4 minutes to 40 seconds in the dev environment. A massive improvement
The explanation is that decisions double the transitions in the process. The other factor is that when the save is performed the metadata cache is fully rebuilt as opposed to just the changes that have been made. (Full cache refresh as opposed to incremental) this also increases the time to save and if it were changed it would also reduce the time to save. I'll post an enhancement request for that too
Jenny.Lardh and jan did some really good work diagnosing the issues here, so many thanks to them both