Funny you should bring this up as I’m working on a game system that does almost exactly the same thing.
First, make sure the Dynamic Property value of the card is above the traits that use it. Why that is, I don’t know …it seems to me you would want to establish the card value before adjusting the Global Property but it doesn’t work that way.
Also, I may have discovered a bug with this system that the good folks at Vassal are looking into …but that’s beside the point. The test module I made for reproducing the bug does exactly what you want. You can download it from this thread:
[url]https://forum.vassalengine.org/t/out-of-synch-global-properties/3460/1]