It should be fine with the add-pssnapin you have there, besides it doesn't choke on the Get-VM cmdlet you execute earlier, so that shouldn't be an issue.
Make sure you run in a 32bit Powershell. The New-VM cmdlet (as well as a handful of others) will only work within a 32bit Ppowershell. See:
https://www.vmware.com/support/developer/PowerCLI/PowerCLI51R2/powercli51r2-releasenotes.html
The following PowerCLI features are supported only on the 32-bit version of Windows PowerShell.
New-OSCustomizationSpec and Set-OSCustomizationSpec
New-VM and Set-VM (only when used for applying customization specifications)
When running against vCenter Server or ESX/ESXi versions earlier than 5.0, the following PowerCLI features are supported only on the 32-bit version of Windows PowerShell.
Invoke-VMScript
Copy-VMGuestFile
New-VMGuestRoute, Get-VMGuestRoute, and Remove-VMGuestRoute
Get-VMGuestNetworkInterface and Set-VMGuestNetworkInterface
Set-HardDisk (only when used for resizing guest disk partitions)
If you just run "powershell.exe -file path\filename.ps1" from a cmd on a 64bit OS, it will run the 64bit Powershell by default.
Run "C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe file path\filename.ps1" instead to invoke a 32bit Powershell.