Hey All,
I am happy to update my own part of this discussion in the hope that it might help someone else in the same situation. Basically we were suffering Inventory differences between the vSphere client (C#) and the Web Client, and this now explains why it was not possible for vCOPs to reliably pull information out of vCenter for all of the datacenter nodes/hierarchy as detailed above.
However, since the Inventory service was running and everything else seemed OK we believed that this was a vCOPs problem. Almost by chance, we attempted to restart the vCenter Server and found that the Inventory Service would no longer start up afterwards. This led us to investigate why 40GB of hard disk space on the vCenter Server had been eaten up by Inventory Service DB XHIVE transaction logs. We recreated the Inventory Service DB using the documented procedure, but this did not resolve the problem. We could see more than 10MB of data being written to the Inventory logs per second, and high CPU utilisation. Further investigation of the debug logs for the Inventory Service led us to discover a known problem with the use of the vFlash feature on (only a single server) one of vCenter member hosts was causing the problem. We removed it from vCenter, applied the patch as detailed in the link below, and the problem with vCOPs is now resolved.
I hope this description makes someone else's day a little bit easier!!..