So I've been playing around with it a little...and I found setting the form's parent to the MdiClient's handle makes it a little less buggy.
SetParent(formHandle, MdiClient.Handle);

#3 seems to no longer be a problem

The maximize issue stated in #2 is somewhat remedied. When you maximize a plugin form it no longer maximizes over the menubar and toolbar but rather under it. Usually the behavior when you maximize a window is that the window's title is appended to the mdi parent's title. This does not happen when you maximize plugin forms.

#1 is still an issue. For some reason, the title bars always appear inactive even if they are the front-most form.

I've also noticed that tabbing to the next control doesn't work in plugin windows. Also control-tab to flip between windows is a little buggy.

There's two approaches I can think of that may fix this. I could create my own MdiClient class so that it accounts for showing child windows via an instance of Form or a handle.

Another idea, and this seems like it's kind of a hack, is to:
1. Create a Form for each plugin
2. Copy the form style, title, and icon of the plugin window to the Form I newed up
3. Remove the style from the plugin window
4. Embed the plugin window's contents in the Form

:/