It sounds like you're trying to be a team player (which is good) and filling whoever the team needs. This sounds nice, and it does help in that you're probably offsetting someone else on your team from going on tilt when he doesn't see an exact 2-2-2 or 3-1-2 that he's looking for, but at the same time, you're hindering your own improvement by doing this.
One of the earliest things you want to learn to get better at a competitive game (and this applies heavily to RTS and MOBAs as well) is to focus, and have one, two at most, go-to heroes that you play, consistently, game after game, for each role. In MOBAs that number can be 3-4 per role, but with the size of OW's roster, you probably want to really focus on the one or two heroes per role that you think you do best with, and just play them consistently (at least in competitive).
Playing a hero over and over again is how you separate your skill from all of the other players at lower ranks that are doing the shuffle thing too. It makes you more and more comfortable with everything you can provide to the team, everything you can get away with, turns your combos into muscle memory, gets your cognizant of your spots on the map, your team synergies, and any advanced techniques your hero might have.
I don't know. I think the best advice is to get at least proficient with the top meta heroes, because you'll be expected or need to fill them out from time-to-time. Every once in a while, the entire team will be stubborn and won't fill in a particular role, and I find myself forced to switch sometimes to fill the gap because, when I don't, we usually lose (I mean, sometimes we lose when I do switch too of course, but more often when I'm stubborn too we get steamrolled than pull off a win).
Ana is still the best character in the game. I'm not even a very good Ana but the burst heal is still preposterously good and the rest of her tool kit incredibly strong. Reinhardt, at least in Platinum, is still underestimated or just underutilized for his nearly universal utility. I mean, everyone
knows Rein is good, but it's actually almost frighteningly simple that in many situations, you're better off just replacing tank A or tank B with Rein if you don't already have one.
And... I could keep going for a while, but the heroes I recommend being able to play are Soldier, Pharah, Mei, all the tanks minus Winston, and all the supports minus maybe Mercy. For the tanks, learn Zarya and Dva last. For the supports, learn Ana first and then the rest whenever.
Soldier's the best hitscan. Pharah's good for checking out stuff and if people can't aim. Mei's invaluable for blocking off chokes, holding points, and defending in general. Rein for the above. Roadhog for being able to get picks by himself. Zarya for helping foolhardy teammates >_> (but is tough to use). Dva for blocking/eating attacks and poking out of place entrenchments. Ana for the above. Lucio for the AOE heal and speedboost (which is tough to communicate briefly how useful they are), Zen for helping divers, destroying things at long-distance because he has no falloff, and prioritizing targets. Symmetra because she's a dumb character who builds fantastic supports ults stupid fast and has really annoying turrets.
A big part of it all is learning some characters are really strong on certain maps. Any map with a primary choke with no or a far alternative
should have a Mei on defense for at least that point. Maps with easily defensible positions for Sym ults, like Anubis B or Hanamura B, would benefit allot from a Sym (probably). Conversely, be ready to run Pharah or Dva to scope out a defense's setup on popular first point Symmetra maps. If the enemy's running a Pharah or a Bastion, you might want to swap Lucio for Zen to focus him down.