Passing objects that use generics as IDispatch during COM interop causes a invalid cast exception.
This is a proxy for implementations of IPropertyManagerPage2Handler9. It
seems that passing an instance of this interface that uses generics somewhere in the inheritence
chain causes COM to bork.
See: http://stackoverflow.com/questions/35438895/passing-an-object-in-c-sharp-that-inherits-from-a-generic-causes-a-cast-exceptio/35449486#35449486
The solution is just to create a proxy for the interface that wraps the original instance. There
are probably some nuget packages around that can do this automagically but I just used resharper
to generate the below code.