Unable to get the proper player state on client

This is probably a replication race condition, your RPC from Event Possessed is replicated too quickly, before the corresponding player state is replicated & set on the client.

Afaik for best results you should bind the event “OnPawnSet” in your player state class. This event should ensure player state and character are replicated and linked together.

For the event to be properly triggered in Standalone & Listen host, you need to bind it before begin play.
Ideal is C++ constructor if you have a C++ base.
If not, bind it from Construction Script :

image

image