<p>I have a core .NET application that needs to spawn an arbitrary number of subprocesses. These processes need to be able to access some form of state object in the core application.</p>
<p>What is the best technique? I'll be moving a large amount of data between processes (Bitmaps), so it needs to be fast.</p>

I have similar requirements and am using
Windows Communication Foundation
to do that right now. My data sizes are probably a bit smaller though.
For reference I'm doing about 30-60 requests of about 5 KB-30 KB per second on a quad-core machine.
WCF
has been holding up quite well so far.
With WCF you have the added advantages of choosing a transport protocol and security mode that is suitable for your application.