Your Game Mode generally holds the meta rules and your GameState actually carries out the local rules based on the player’s state. So your Game Mode would dynamically change the GameState depending on what’s happening. So for instance, your GameState would start as “In Game” with rules that govern moving the player, where they can go, things they can do, that kind of stuff, and everything would be fine and good until your character gets shot in the head. In Game then says oh well a headshot makes the player lose all his health and your Game Mode is then like Whoa man there’s no more health here let’s change states to “Dying”. That kind of thing. Of course, Modes and States are very freeform, and this is just an example. You can make entire games without ever utilizing Game Mode or GameStates, they just make it easier to govern things in-game when some objects may be created or destroyed throughout, so putting game logic on these objects (the ones that great created and destroyed throughout the game) would be difficult to maintain.
Curiously, Epic has yet to release any videos outlining how to use Game Modes and their child pieces and the documentation (https://docs.unrealengine.com/latest/INT/Gameplay/Framework/GameMode/index.html) is just about as vague as I was.
Just don’t worry about doing things the “right way” and just focus on getting your game to work. In GFX they say “If it looks right, it is right.” In Game Develpment, I say “If it works, it’s right. As long as it has no huge security flaws and a fluid framerate and doesn’t crash. Then yeah.”