Owen, thanks for the tip about ShowDialog. That is how I have always called a dialog. I will change from now on.
The issue seems to arise from a call to trans.AddNewlyCreatedDBObject( obj, true );. If I comment this out, then the UndoCtl variable is set to 5, and undo's proceed like they should. If I leave it commented out though, I receive an error of eWasOpenForWrite on the call to WblockCloneObjects, but only when selecting certain objects.
The situation: I am exploding blocks and if their contents meet certain requirements, then they are added to the current database, with the ability to be copied to the new database. I append the objects, as an entity, to the owner BlockTableRecord, and then call trans.AddNewlyCreatedDBObject( obj, true ).
I have some testing to do tomorrow, but am calling a quits for the night.
Thank you everyone for the tips and pointers. They are very much appreciated.