For anyone that gets the same problem I have worked this out
Service Call writes to ERP.CurrExChain table and Key1 in it is the Call number. It seems that since switching to E10 it somehow got it's record of the last call number muddled and was trying to write to the table with a call number that already existed in the table. I went to the Company Setup and put a new start number for Service calls that was higher than the last one raised and all is now well