Check the version of the .NET framework on the non-working PCs for starters. This may help:
A safe way to get the user to check if the .NET framework is installed[
^]
Then check the system type / your app type: make sure you aren't trying to run 64bit apps on a 32 bit machine.
Then check that all the DLLs your app uses P/Invoke to access are present, the correct version, and available.
If all of that works, start by creating a trivial app and try that. If it works, add some complexity until you find what is missing - it may be that a DLL that calls a DLL or similar, so just keep going until you find something that doesn't work!