Subscribe to IDesignerHost.LoadComplete event. Make any changes to the designerhost (like adding/deleting component, etc.) only after this event, or else the design document will not be made ‘dirty’.
(IdesignerSerializationManager.SerializationComplete will tell you when Code is deserialized into design time components).