I have a problem where I tag snowballs but the tag dissapears when the snowball is in the air

Solution 1:

Apart from the NBT error (Tags needs to be in EntityTag), this is caused by the bug MC-123289: Snowball entities don't copy the NBT tags of their item when thrown, so the tag you have given it simply gets deleted when the snowball is thrown.

A workaround for this would be to tag the snowball based on a nearby player who matches conditions. Be careful to only apply that to new snowballs (not yet tagged), otherwise it could change from passing by other players. Even with that, it could still happen that a player throws a snowball in the direction of another player and that player gets selected instead, but only if they are really close, which shouldn't be a problem for your usecase.