This is the key part: "or one of its dependencies"
I've often found that the assembly dll file that can't be loaded looks fine. However one of its dependencies (another assembly dll) does not exist or has been moved.
When the CLR loads an assembly it will also check that all of that assemblies dependencies exist. In XCopy deployment this normally means you need all the dependency assemblies in the same directory as your application exe.
Try loading the winforms executable into Reflector and under "yourApp.exe" expand the References node to see what the other referenced types are.