Update:
I discovered that my custom GameState was somehow causing the issue of clients being rooted at spawn. I changed the world game mode override to the default GameState class and now players are able to move around. The server is however not reporting to the clients which way it is pointing its gun (looking up/down/left/right) even though the clients are reporting gun pointing positions.
I do not understand why my custom GameState was hindering the non-host clients from moving around. My custom GameState was a child of Game State Base.
This morning I am out of time for further troubleshooting and exporting. I will create a new blueprint as a child of GameState, Not Game State Base, to see if it solves my problem.