Do you see the VXM path for all the VMs ? Do a
Get-VM|SelectName,@{N="VMX";E={$vm.ExtensionData.Config.Files.VmPathName}
To answer the question (script 2) try changing the beginning of script2 as follows
...
$vm=New-VM-Name$_.Name-VMFilePath$_.VMX-VMHost (Get-Cluster-Name $Clusters|Get-VMHost|Get-Random) -Confirm:$false
Get-VM$vm|Get-NetworkAdapter|Set-NetworkAdapter-NetworkName$NewPortGroup-Confirm:$false do { write-Host"Validating the $vm PortGroup"
sleep10
} until (Get-VM$vm|Get-NetworkAdapter|Where {$_.NetworkName–eq$NewPortGroup }) write-Host"$vm has been mapped to $NewPortGroup"
$question=Get-VMQuestion-VM$vm
if($question){ Set-VMQuestion-VM$vm-DefaultOption-Confirm:$false
}Start-VM-VM$vm-Confirm:$false
....
When the Start-VM succeeds, the Update -Tools should run.