2013/8/7 Marcus MacWilliam <marcus.macwilliam@1spatial.com>
I think my question is how do I add a serialize method to an
interface class, which will invoke the serialize method on the
derived sub-class.

Try to check the related topic in documentation - http://www.boost.org/doc/libs/1_54_0/libs/serialization/doc/serialization.html#derivedpointers 

--
Regards,

Stas.