Custom QualifiedValue

Right - CloneUtil isn't working for your class because we deliberately segment each module into a different classloader so that they can bring in different versions of possibly conflicting dependencies and don't stomp all over each other.

I don't think there's really any way around that.

But, good news/bad news...
I don't think the custom qualified value or directly manipulating tag properties is what you want to do at all. And there is a mechanism for doing it - the so called 'tag actor' system, where you register a 'factory' via your module hook, and the tag system automatically creates as many instances of your actor (which can intercept writes, manipulate values, log, etc) as are required by the underlying tags.
To my mind, this is the perfect solution to your problem.

The bad news, then:
There's close to zero public facing documentation on this system (and it would be the blind leading the blind if I tried to offer more than very broad spectrum advice).
Some starting points:

1 Like