I used Mercy for primarily defense and sometimes offense for payload portion of maps. King of the hill maps or if I need speed will have me being Lucio. Zenyatta is taking some convincing within myself to use again since the Widowmaker trauma was that great but yeah, he's great on offense for melting tanks. Mercy on offense is asking for trouble. On defense, I usually do not go beyond choke points unless there is a good rez to be had. I also do tend to fall back sooner than my teammates. A dead Mercy is an useless Mercy.
Tracer is good for singling out Mercy and for landing a bomb on say a tank or Bastion. She is also good for distracting enemies from the point/choke point. Unlike Winston, she might be able to truly run away and not get gunned down.
Anyhow, I started to really use Pharah, Junkrat, Roadhog and Reinhardt now. They're quite fun to play. Pharah is kind of tricky but highly rewarding. She's helping me to become more accurate with my other characters. Junkrat is well, a nuisance and dangerous in tight spaces. In one game, I nearly got 20k in damage. Roadhog chain is just fun to use for getting say, the support or even Bastion from the defending team. For Reinhardt, nothing is as satisfying than going to town with him or, rarely, having the team actually behind the shield and just laying waste to the enemy. Like folks, you can emulate a Reinhardt posse on a cart on foot.
Anyhow... about 60 hours in, I think I have a problem.