How to counter the teleporting: Add a minimum time between each gather location that somebody running between spots is unlikely to be below; but people trying to cheat and move quicker will most likely exceed. How about 10 seconds? I can think of perhaps two spots where I would be likely to regularly go below this.

How to stop botting: Make the gathering box UI window when you start at a new location move to a random part of your screen. Slightly annoying, perhaps, but it'll stop all these wonderfully coded click bots from working.

What NOT TO DO PLEASE SE: Add gathering fatigue.