I don't think they play the U.S anthem when two Canadian teams play do they?
I don't think it has anything to do with the players on the team. I think it's more about the home turf. If the game is on U.S soil the U.S anthem has to be played, if you're on Canadian soil, the Canadian anthem has to be played. Also I'm pretty sure it has more to do with playing the anthem for the fans and the city of the people that game is being played at or the city that is being represented in the game. Not to do with the players. If it had to do with the players on each team then they would have to start playing the Russian and Swedish anthem too.. So for instance if it's Nashville at Montreal - they should be playing the national anthem that those two cities/ state represent (U.S Anthem and Canadian Anthem), not based off what each individual player on the team represents, whether its 20 canadians, 20 swedes, 20 russians.
I.E- The players don't represent the nationality of the team. The city represents the nationality of the team. The Red Wings have a Swedish captain, and a good amount of Canadian and Czech players but the Red Wings are a U.S. American team. Born, raised, funded and headquartered in Detroit. Period.