Bjorn,
System.Windows.Forms.Form is not serializable- therefore cannot be used in the proxy layer. System.Drawing.Graphics; however, should be okay, as you saw in the ShapeAppAdvancedCSharp sample. More basic types like System.String will also work.
The KeyNotFoundException is usually indicative of a mismatch- possibly between a type in your proxy and the TypeInfrastructureManager. The code you included looks fine to me- pretty much an exact match to the Proxy.cs line 323 in ShapeAppAdvancedCSharp. To find where the problem is originating from, try setting a break point in Microsoft.VisualStudio.Tools.Applications.ProxyServices.Helper GetMap() and stepping from there. This should give you a better idea of what is actually going on. Also, try re-building the entire solution after making any changes.
This exception has been a problem for others- here’s a link to a similar forum thread: http://www.summsoft.com/forums/thread/120.aspx
Hope this helps!
-Melody