One option is to create MBeans on the fly for each component. Also have a Model MBean, which is persisted and holds a reference to the component MBeans. On save() it should persist its own state along with the list of components and their state, so that they can be recreated on startup.
This is how it is done today in Nukes 1.x through the JDBCPersistenceManager which is an implementation of JBossMX persistence manager.
However that persistence is very simple and poor and does not allow for rich metadata structure to be persisted.