To change the 'domain-controller' attribute on a host you need to use the custom 'write-local-domain-controller' or 'write-remote-domain-controller' ops. This should also support a standard write-attribute.
It can probably just use a ReloadRequiredWriteAttributeHandler variant as after boot it just triggers a reload, and boot can continue to call the existing custom ops. So just the validation and model manipulation aspect needs to be handled by the write-attribute handler. There's already a proper AttributeDefinition for the attribute to assist in that.