Well my first thought was to assign an onUnequipItem connector to any item equipped; to signal when it was unequipped (and then remove the hook)... But that crashes the game... So to use that option, it looks like you would have to add the hook to the initial definition of every item.
*But it works.
Barring a better method, if every item had the onUnequipItem hook call ~notify your GUI that an item was unequipped, then you could check for a changed slot (was 1, now 11), and know the sets had been switched. But it seems rather involved. There should be a better way than this.
What about doing that slot check every time the mouse is clicked on the UI?
It seems possible to add an onDrawGui hook to the party, and call function to check the party's equipment on context.mouseDown(3), but I haven't managed a good check to detect the swap ~yet.
*context.mouseDown(3) seems undocumented. The usual number for 'left mouse button' is 0 [zero], but that continuously triggers while pressed... 3 seems to only trigger once per press.