Do benched Pokemon heal?
This rules guide explicitly says that:


  You'll see that each pokemon has HP, this stands for hit points. When they have damage on them equal to or greater than that number, they are knocked out. Each attack does damage, which is written on the card. This damage stays on the pokemon, even if it is no longer the active, unless you can heal it with a card.


This suggests that if you don't remove the damage counters from your Pokemons, they don't in fact heal by themselves. It doesn't matter whether the Pokemon is active or benched.

And yes, returning a Pokemon to your hand removes all damage from it, but you cannot return a Pokemon to your hand whenever you want to. You need to use trainers or an ability of a Pokemon to do so.