The WPF project is compiled under .NET 3 but remember that .NET 3 and 3.5 really run in a .NET 2.0 process because they are simply extensions to .NET 2.0. So that's why it works.
In your case, I don't know why it doesn't work. Since you are running under .NET 4.0 anyway, I recommend you upgrade all the source code to that version. Then move the WPF code into the Business project and call its classes directly rather than through reflection. Finally, you can delete the WPF project.
I am actually going through that same process now, since GSP 2.5 will be .NET 4.0.
Roger Martin
Creator and Lead Developer of Gallery Server Pro