In a Single Player Game it doesn’t really matter, since the Local Maschine is the Server.
It however makes a difference in Multiplayer.
The GameMode sets the Rules (Score needed to something to happen). It’s the basic set of rules (For Example: Football) only the Server can access it.
The GameState handles the actual Game (Check if Scored). (For Example: The Referee, or Playfield). Everyone can try to score and the Server decides whether you scored.
The PlayerState is replicated to everyone but only the owning client or the server can change something in it and contains Mode-specific data (For example : The goals you were responsible for or your name or shirt number).
I recommend reading @eXi’s Compendium: