OK, I uploaded a WinBoard beta to
http://hgm.nubati.net/WinBoard-4.8beta.zip . This has the engine-defined variant names, a patch to allow blacking out of squares (marked by * in FEN, needed to get a nicer display with Omega Chess), and (hopefully) a fully functional 'promotion on purple'. Especially the latter was a bit tricky, because WinBoard has so many modes to enter promotion moves. With -sweepPromotions false you should get an old-fashioned promotion popup for any move to a purple square. This is not too convenient for engine-defined variants, however, as the standard popup does not contain all piece types, and might mention them by names not usual for the variant. (Like Chancellor for Champion and Archbishop for Wizzard.)
With -sweepPromotions true you can always do a click-click move to a purple square, in which case you can make a non-static click on the to-square to adjust the piece on the to-square to the desired type before you release the mouse button for the to-click. With a static click it should take a default piece, but this is sort of ill-defined in non-standard variants, as it has no idea what the most valuable piece is.
The most tricky to get working was the detour underpromotion, which is normally triggered when you grab a Pawn on 7th rank. Pulling it back before you move it to and release it on the promotion square then can be used to alter the type from the default promotion type. The problem with this mode is that it can only work if you know by the from-square alone that there is going to be a promotion. For standard Pawns on the 7th rank that is indeed the case. But this mode cannot be used for Shogi promotions of other pieces, which only have some promotion move but also many non-promoting moves.
To make it work even for Pawns in response to a purple square (because the zone is different from that of the parent variant) was problematic, because when you pick up the piece there are no highlights yet. So it had to trigger this mode in a delayed fashion, on reception of the highlight command. It will now check the highlights to determine number of promotion moves and other moves, and if all moves are promotion moves it promotes the Pawn (or other piece) you are dragging, so that it will start to cycle through the various choices when it is pulled backwards. When you finally release it on the purple square, it will stay there as the chosen type.
One problem I had was that the purple square is no longer purple at that point. WinBoard also sends hover command to the engine when the mouse pointer enters a purple square (as I did not define separate colors for promotions with and without capture), and as a matter of fact I did test this on a promotion that was also a capture. Nebiyu then sent a highlight command which did color the to-square 'transparent' (T). And of course it still is in that state when you release the mouse button to put the piece on that square, as you must do that before you leave the square again. So I had to introduce a flag that forces promotion without testing the square color, set at the point where it became clear all moves would be promotions (which is needed to trigger this mode in the first place).
Btw, why do you send this transparency FEN. In Ultima you color the victims green, when one hovers above a to-square marked as a capture (in red). So it would be logical to color the promotion square green rather than transparent if you hover over it. Although for replacement capture it is not very useful to indicate the victim at all, as it should be clear to anyone that what was there must disappear (as we cannot stack pieces). Perhaps it would be better to have the engine not respond at all to a hover command for a move that only captures what is on the hover square (and certainly if it captures nothing at all, and the hover command was only sent because you hovered over an empty promotion square).
I guess that when the engine indicates capture victims in green when you hover above the to-square, the GUI could use this info when you release the piece there to perform all 'side-effect captures' even without receiving any board updates. When the engine moves, however, there would be no highlights, so this is probably of little value. And board updates would still be needed for side effects other than removal of pieces.