You mean you use the method to set or change the value of the model field property, instead of on the fieldset field object the method creates?
As far as I know that is not supported. The properties array is meant to define parameters and defaults for the field, not to contain runtime data.
Instead, call the parent, have it create the fieldset, and then used the returned fieldset object to add runtime data (using set_options or set_value) before you return it.
What I meant was that the call to parent::set_form_fields() returns the populated fieldset.
If the options list is static, you can do this, no problem. If it's dynamic and you need to generate multiple fieldsets, it's better to call set_options() on the fieldset returned.
Either way, you need the fieldset object to do ->field('theme')->set_value('default');