Would it be easier/cleaner to give the widgets a refresh/reset method which copies originalValue to value for each property? Then you could override it for the coloring and glyph properties to check the inner parts.
And better yet, have it refresh/reset all of the schemes instead of just the selected one. This is necessary because of a related bug I just found. Do the same process in your example, but change the four colors used in the action. Then, after triggering four, solid, four, and refreshing twice, go to the properties panel. Change from solid to four, and see that the action's colors are visible even though the original values are displayed. Reseting all schemes should fix this issue.