You have to set DesignerSerializationVisibility attribute on the property whose type is a strongly-typed collection to Content. You have to ensure the collection is created at statup or on demand.
In order to support serialization of items that do not implement IComponent into your code you have to write a TypeConverter for that class that can convert to InstanceDescriptor.
See InstanceDescriptor in the MSDN Library for an example.
Contributed from George Shepherd's Windows Forms FAQ