I haven't delved deeply into this but tags have always had issues and I seem to be running into another one.
I create a game and set a 'Private' tag to 'True'. Then I also set a 'Ready' tag to 'True'.
Then, on another client, I call GetCurrentGames with tag filter set to include Ready: True and exclude Private: True.
It still returns the game with Private set to True. The include part seems to work, but the exclude does not.
Same story if I call Matchmake with the same filters.