It would still seem there are some limitations, as you cannot change the text color of a label and then the background color because the second changes the first!
I may be able to fix that... leave it with me and I'll have a look into it.
There's only so many combinations of things one can test (or think of testing) against... which is where "live" testing helps immensely :-)
UPDATE - Fixed for the next release ;-)
Turns out I was using a "new/blank" widget palette on each colour change, rather than getting the current palette and modifying it. (put this down to my 3 weeks of C++ experience...)