Hi, although this is old post, I had a similar issue so I wrote an article on how I solved this problem.
Tom Spirit: vSphere | A VM is showing disk size of 0B
The reason for this is probably because the VM is running on snapshots and it has been interupted somehow. The ESXi host doesn't see the snapshots.
To solve this basicly all you have to do is power down the VM. Unregister it, then register again (on another host if possible). Check for snapshots and if there are snapshots commit them and you are good to go.