Probably the best way of handling this situation is to rate the heroes you play. If you play a lot of Mercy, maybe try and flex pick the Lucio when you see it is fit. If not just only play Mercy through your placements. Focus on surviving and not dying often. The less that you die as Mercy, especially when you have res, the increased chance of your team winning.
What I can handle, from best to worst is:
1) Mercy: While I am careful to watch out for snipers, shot junkrat's wheel on time (I wonder if 5.1 would help), remember to stay covered and never run to the point alone after getting killed (sometimes the whole team gets obliterated as soon as I arrive and I have to run from 50% of the team, I can do it. My mercy deaths are usually due to being unable to flee.
2) D'Va: I can handle her better than Bastion, although I tend to forget that sometimes the barrier is more important than the guns. Some issues launching the ult on time, that maybe I should activate on 0 HP, or when we need to clean the point.
3) Lucio: Sometimes I feel that his healing is not enough when we are under heavy fire, plus teammates not paying attention to the range. I use him mostly on maps where I can push people. Basic wall crawling skills. If a mercy does the healing and I keep speeding up the team, results can be really good.
4) Soldier 76: Very mediocre, and depends a lot on the day. I started arm aiming very recently and I can't track well skilled fast enemies (like tracer, which is my absolute nightmare). Still better than using Tracer, too fast and tricky for me.
I have never used Mc Cree or Reaper for DPS, though. Or Snipers. One problem with mercy is that most of the time too much time passes between deaths and I can't get it to two revivals on an ult. Sometimes I find hard to decide if I want to revive the deceased asap (maybe if we are talking about the only tank), or if things are still not critical and it's ok to spare it.