@Graham_Knapp,
Rhino allows to setup custom undo events. There is a good example dealing undoing sticky values here.
_ c.