fix #28301: text style assignment does not take effect

We were using value<TextStyleType>() in setProperties, but I guess you can't do that for enum classes.

Even though it was only value<TextStyleType>() that was failing, I added canConvert() checks for TextStyle, Fraction, and Groups in their respective setProperties functions as well just to be safe.
This is not really hacky. It's also done in other places in the code.