Game Instance Event Init happens only once and before the controller exists.
to ensure order of operations its better the have the PlayerController BeginPlay set the variable on the gameinstance
that shouldnt be an issue.
just likely means your slot name is wrong, for player data just Hardcode it for now, ie use Player