Okay, that has done the job, many thanks, and great support, by the way.
For future reference, in case anyone else encounters a similar problem, even after upgrading to PHP 5.4 I was still getting an error, and tracked it down to the posts overwriting existing posts. Some wires got crossed somewhere. This problem stopped once I deleted all existing posts.
Thanks again, and I'll make sure to update PHP in future.