The designer throwing an exception is a known problem, and is caused because the designer requires a concrete class, not an abstract one that PSSnapIn is.
Fortunately the only problem is the designer does not load. Viewing the code (and editing) in VS works fine. There should be no need to view in designer mode for this class. (now i've said it...)
Hope this helps.