With multiple hosts, each of these host may hold the lock. Did you follow the KB article mentioned by LennieDH to find out who's locking the file? If you do have only a few hosts you may try to restart the management agents on all of them.
If this still doesn't help you could clone the virtual disk (which merges all the snapshots to the cloned disk) and replace the VM's virtual disk with the cloned disk. To create the clone, shut down the VM, find out the virtual disk (.vmdk) name of the current snapshot and run
vmkfstools -i vmname-0000xx.vmdk vmname-clone.vmdk
André