What i did with character selection in my game is that i have two separate Game Modes and maps.
One that i called GM_lobby have the character selection. The other GM_play does not.
Once the character is selected on GM_lobby i save it to a variable in the Game Instance, and on GM_play beginPlay event i retrieve it from the Game Instance.
This doesn’t work anymore for me. I create three BPs (BP_GameInstance, GM_MainMenu, GM_Gameplay). I added an integer variable on the instance for testing. On the main menu I add 1 to the variable. Then I Open Level that has the GM_Gameplay on it and print the variable from the game instance and it is the default value. I have left everything else the default values and this is a brand new project:
Game Instance: BP_GameInstance
Main Menu: MainMenuMap with a GM_MainMenu
Game World: GameplayMap with a GM_Gameplay
Everything else is default Third Person Template.