Can't see anything wrong with the syntax, and it works fine for me;
Clear-Host
## Connect to vCenter
$vcenter = 'myvcenter.mydomain.fqdn'
Write-Host "Connecting to $vcenter" -ForegroundColor Green
Connect-VIServer $vcenter | Out-Null
## Copy from Local to Guest
$vm = "testvm"
Copy-VMGuestFile -vm $vm -source C:\_TEMP\xyz -destination C:\_TEMP\xyz -force -localtoguest
## Disconnect from vCenter
Write-Host "Disconnecting from $vcenter" -ForegroundColor Yellow
Disconnect-VIServer -Server $vcenter -Force -Confirm:$false
Have you tried deleting the guest folder or using a different path (even on a different VM) just to rule out any NFTS corruption?