Shapes are fully serializable by themselves, this is how the cut and paste system and the undo/redo system works. You can use normal .net serialization using a binary, soap or xml formatter to copy these items to eg a stream (say with a right click context menu option), then deserialize them as normal into your toolbox. You can also save the serialized data to disk/database to create a collection, perhaps by simply serializing an entire Shapes collection.
You will also find that the Palette control saves and loads from disk, supports drag drop etc becuase it inherits from Diagram. You can change the appearance and behaviour by overrding the control, and by changing the PaletteRender class.
If you need help with either of these items, please let me know.