You can use a COM addin to work with items but not as a complete substitute
for a custom form. A custom form can call code in the ThisOutlookSession
module and can call COM addin code but using the code in ThisOutlookSession
isn't supported, which means it works now but may not in the future.
I've developed enormous forms that aren't one-offed and when published the
form size isn't huge. I'd suggest that your form is one-offed and that's
most likely the problem if you publish it and open an instance of the
published form and it's still huge.
See
http://www.outlookcode.com/d/formpub.htm for information about
publishing forms and one-offed forms.
See
http://support.microsoft.com/?kbid=240768 for information about how to
access public procedures in a COM addin from outside the addin.
To access code in ThisOutlookSession from a form you declare the code as
public subs and then access it using Application.MySubName from the form.