Does CopyProperties in PlayerState actually work?

So I decided to implement it in a custom C++ PlayerState and it does get called there, but it does nothing. The properties don’t carry over to the next level after I’ve copied them to the NewPlayerState. I also tried implementing SeamlessTravelTo and it to does the same thing. Gets called, but the properties don’t persist. They are just reset back to their defaults when the next level is loaded.

I’m using my custom player state in the lobby, transition map and the game map and I have seamless travel turned on in all game modes. So there must be something else that is missing.