Ive tried this out a few times and I got it working, so I believe your issue would be you are using a decimal for the tp. This game works on a single block coordinate. It does not pan out or work when it comes to decimal values when it involved moving something. Remove the decimal.
If this has helped you, let me know and mark this as [SOLVED] when editing the title for the thread.
Well i solved that part, but im trying to make it so either if the player is next to more than one hopper it will make them tp, or if they are near multiple hoppers, they have to move away from the hoppers.
You can either tag two different types of armor stands (or more depending on how many you want) and place them inside each hopper then give all armor stands invisibility. Once the player is near two different armor stands then they would be teleported back.
Thats the start of a great idea! But if they leave that armor stand wouldnt it still stop them at the next one?
Im also trying to think of a way to check difference between positions every tick or something. If the position changed, then it executes the tp command unless there is a hopper next to them, resetting the tp until their position changes.