This is how I did it:
DesignSurface surface;
public void AddComponent(IComponent component)
{
((Form)surface.ComponentContainer.Components[0]).Controls.Add(component);
}
surface.ComponentContainer.Components[0] will be of whatever type you passed into surface.BeginLoad(Type), and it's the main form that you are designing.
I don't know if you have to use
designerHost.CreateComponent() or not, I did and it worked but I haven't tried without yet. I guess it probably would, but you may not get the nice designer stuff, like the sizing/drag handles.
Let me know how it goes for you

Ben