Hi,
Currently the managed object id values in vSphere are not globally unique (perhaps some future release might address this).
For virtual machines you could use the UUID value stored at uuid.bios within the .vmx file and also available through VIM API as VirtualMachine.config.uuid property (VMware KB: Changing or keeping a UUID for a moved virtual machine ). I have verified that this value is preserved when doing failover using vSphere Replication. I haven't explicitly checked the array-based replication case.
Regards,
Martin