As MasterDaniel has said, you can only use LocalPlayer when using a LocalScript. However, since you've got a SurfaceGui in the Workspace, you will be unable to use a LocalScript.
Technically, there is nothing wrong with your code. The only problem is that there is no way to detect who clicked a button with a SurfaceGui in the Workspace since you can't get the player who clicked it from using the MouseButton1Down event, nor can you use a LocalScript outside of the player.
So, what should we do to rectify this issue?
The solution is to parent the SurfaceGui to StarterGui and then use a script to set the Adornee property of the SurfaceGui to the brick that you want the SurfaceGui to go on. The Adornee property basically lets you show a SurfaceGui onto a part without having it parented to the actual part.
After you've done that, just put your code into a LocalScript and if all goes well, the button should work fine and you'll be teleported to the designated position.
I hope my answer has helped you. If it did, be sure to accept it.