My next version of Peacock has several assets libraries, as default geometries. What I’ve done is serialize those geometries in an XML (it could also be a JSON, but I already had experience with XML) and load that files as resources in Visual Studio. When the plugin is loaded, I deserialize all the libraries and store the geometries in their respective object galleries. Some components take care of finding, cloning and using them.
Consider loading them only when you need them (like instantiating a component that requires them) if they are too heavy to be loaded all at once when starting GH.
OpenNurbs/Rhino allows to serialize GeometryBases in binary and vice versa. But for ease of use, you can use the GH methods:
Grasshopper.Kernel.GH_Convert.CommonObjectToByteArray() and Grasshopper.Kernel.GH_Convert.ByteArrayToCommonObject()