Adding a property to a tag

In the module I am working on I need to add an extra boolean parameter to tags to trigger certain behavior. The tags are created and managed by a ManagedTagProvider.

Currently I am able to create an extra property this way

BasicBoundPropertySet realtimeProperty = new BasicBoundPropertySet(new PropertyValue(new BasicProperty("Realtime", boolean.class), false));
provider.configureTag(p, realtimeProperty);

However I have noticed on some deployments that the datatype of that parameter gets changed from boolean to string and then never changes back even after module and ignition restarts. The API docs are fairly lacking in regards to adding properties to existing tags so I am very unsure if this is even the right approach for this. Is there a documented way to do what I am trying to do or any classes that I should be looking at?