Don't know anything about the C# interop you're tryign to do, but I can tell you that the issue you have with "cannot instantiate abstract class" is because you are extending ManagedDLL::ICalculatorEvents and it's presumably an abstract base class, meaning that you need to implement the pure virtual functions that are in that class.
Other than that, I have absolutely no idea. One idea might be to keep your FireBreath code and your COM calling code separate, and create a class that you'll use as a bridge. Rather than making changes to your PluginCore object which is already tied tightly to firebreath, create a new object that can be the bridge and do weird things to that.
Just a thought; I think it'd simplify things, though, because then you could ask questions that would be just about the COM side or just about FireBreath. When you mix them you get into situations where people don't answer 'cause they only know one or the other and don't know how the half they don't understand may be affecting things =]