Sorry for the delayed response.
I tried what you suggested and had the same results. However, I had a big ol message typed in, and then the reason this was happening occured to me.
I first create the object in the CreateComponentsCore method of my toolbox item. I then get that object and Modify its properties directly, by modifying the component that was returned to me by calling base.CreateComponentsCore. This happens after the component was created.
Now correct me if I'm wrong here in my thinking.
The UndoEngine records the event according to the Events of IComponentChangeService . So the state of my object would be recorded in the UndoEngine when the object was originally created. At that time my objects were at their default values.
If this is correct, then I need to change the default properties collection passed into CreateComponentsCore so that the object has the properties set when it is created so the UndoEngine will recognize them as being there.
Did I make any sense at all?