It does
On the 2nd VM, is that a typo in the thread or in the script
$hd1=New-HardDisk-VM$VM2-DiskPath"[Datastore] VM1/VM1.vmdk"
New-ScsiController-HardDisk$hd2-TypeVirtualLsiLogicSAS-BusSharingModePhysical
That New-Harddisk cmdlet should assign the object to $hd2, and not $hd1, I think.
Can you perhaps check the vpxd log of the 2nd ESXi server ?
It should list the complete input object to the used method. Sometimes you can deduce from there which of the parameters is wrong or missing.