There are couple of things that I would like to check
First >> If you create a new VM ..... add the disks from the old vm to the new machine .... try powering on the new vm and check it works
Second >> if you go to the invalid vm's directory and run the touch command ..... does it show any file is busy
Third >> try moving the flat files and their vmdk's to another datastore and then check to power on the machine
Fourth >> try registering it on a different host