GetPlayerPlaceInstanceAsync returns a JobId which is different from a reserved server access code. The former is used to uniquely label the server while the latter’s purpose is in the name.
Developers commonly work around this issue by using a DataStore where the key is the JobId and the value is the private server code. This way you would just need to find out what the JobId of the target player is (GetPlayerPlaceInstanceAsync), feed that to a DataStore and get back the access code then use that to perform a teleport into the server.