Not sure if this is the case here, but I had a similar problem once where a x86 C# project wouldn't work on x64. The problem was the Any CPU setting.
At first, the Any CPU settings seems like logical case: after all, it's meant to run on both x86 and x64 architectures. The problem is with shared DLLs. If the EXE is compiled in Any CPU mode, and the DLL is compiled in x86 mode.
When you run it on x86 OS, the EXE is executed at x86 mode(that's the only option in this architecture) and the DLL is executed in x86 mode(because it was compiled like that) and everything works.
But when you run it on x64 OS, the EXE is executed at x64 mode - because it's Any CPU so you OS can run it in x64 mode. But the DLL can't be loaded at x64 mode(it doesn't have any) so we get a conflict and it can't be loaded.
Assuming you can't get Any CPU or x64 versions for all your DLLs, the easy solution is to compile the main EXE in x86 mode in order to force x86 emulation on x64 systems.