LocalPlayer exists for every Client and are part of the general system, not exclusively OnlineSubsystem (pretty sure on that).
The only time I’ve ever had to access the LocalPlayer is to create a Save System which loads data when the player logs in or first enters a game. You will need it for things like Xbox / PS4 Profile integration etc, but otherwise you probably won’t need to touch it. LocalPlayer is I think a sub-class of UPlayer, which is the UObject for an actual player - about as close to the player as you can get.
Seamless Travel is mainly part of the GameMode. I don’t think you need to use the Network system to use it since all it really does is copy the data in PlayerState and PlayerControllers from one level to another, and sets it all up again when you load into the next level. However, there might be some stuff happening in the Online system that keeps the connection open while that happens.
Most online stuff can be done through Interfaces (which is why you’re able to swap between different online systems). If you can make your system work with that interface, most things should work the same.
Btw to ‘Login’ and use HUD elements, you will have to have a PlayerController, which by default all players do anyway as soon as they login (see PreLogin and PostLogin in GameMode.cpp). Without a PlayerController, the player can literally see or do nothing.