Hrm, that's odd. Although it could be that if the assemblies weren't in the GAC, the different versions of VS might have different pathing to the referenced assemblies and the wrong version might have been brought in. If the two versions don't line up, the sequence of data written to the stream would be different than the sequence of data expected to be read from the stream on the other end, and you would receive all kinds of errors, such as the end of stream exception you got.
Anyway, I'm glad you got it working.