I assume when you Check Com Interop and comment he code. You have no error and the Add-In was working.
I used to strugling withGP Add-In too when I worked in my previous company.
Here are the reason you got Error:
1- Check Com Interop: The Add-in is managed code but it need to interop with COM in side GP. I mean GP still use COM in the version you are working with.
2- Comment code: it cause by circula dependency. Please read this link
http://misko.hevery.com/2008/08/01/circular-dependency-in-constructors-and-dependency-injection/