Yeah in November I was exactly where you are now. I do use XMLSPY to edit my buildFile and it's SUPER-useful for "search" and "search/replace" kinds of thing. Also for moving blocks-O-crud around. I do also create scads of Global Properties with it, e.g. when I need three groups of 20 global properties in a particular naming scheme -- global properties are safe to copy and duplicate. PIECES unfortunately have pretty hard-to-parse coding, but you CAN do search-and-replace with a reasonable amount of care. One word of warning there can be slight issues if you CREATE new pieces in it (by duplicating other ones) and don't give them unique gpid's -- it will eventually straighten itself out but if you just avoid creating new pieces that way you'll be... safer. BTW the buildFile, if you haven't found it, is inside your VMOD file which is actually literally just a ZIP file renamed to the VMOD file extension -- so just get 7Zip or whatever and you can pop your buildFile out to scrud around with.
Meanwhile you've obviously discovered "lots of text labels". I will also insert "Report" traits in various places to see if triggers are firing or what they think is in the properties at the time they're hitting or not hitting their matching expression.
FINALLY, since you say experienced programmer -- Vassal IS an open-source Java project, and so if you want to REALLY "dive into the abyss", you can get Eclipse running (e.g.
http://www.vassalengine.org/wiki/Eclipse_setup is only slightly out of date) pull down the Vassal source for 3.2.17, and go to town. As in ALL THE THINGS -- breakpoints, what's happening in expressions, etc, etc. But it does mean you're debugging the java source for the whole platform, and so there's a certain amount of drinking-from-the-firehose when all you really want to know is "did this global property get set to 1 or not". It's a deep deep rabbit hole, but I followed it and it led to... goodness.
I have a custom "chat" class for the chat window, and I've started to experiment with "console-style" commands for it (e.g. "/force chatter height 160"). I'm toying with setting it up to let me query & set properties and stuff on the chat line. When I start to get a feel for "how long it's going to be until Vassal 4" that will probably nudge me toward either getting that all nice and set up or else writing some similar thing for Vassal 4... soooo many rabbit holes.
Brian