Review done for my part. In addition to my assigned bits I looked at common.py and multiModel.cc and the build files. The code is very nice. I had a few minor requests (most for code comments in a few places) but didn't catch anything big.
My only concern of any magnitude is that you often rely on virtual methods being run by the derived class without explicitly wrapping these methods. We have found cases where this does not work (and I confess I don't understand why it ever ought to work), so I hope all such usage is thoroughly tested.