Honestly OW's balance changes have felt fairly desperate to me. Since release at top level play we've basically had an 8 hero meta (for a given map, at top level play, there are rarely more than 8 viable heroes for both sides combined). The only thing they've done that ever changed this was the one hero limit, because now the absolute worst the meta for a map can be is 6 hero. Prior to that there was a point where top level Lijiang tower had a 3 hero meta, where between them both sides playing optimally would have 4 clones each of the same 3 people. Now we "merely" have 4 characters for most maps that get cloned once.
But nothing else has really helped. They keep batting down each meta and then a new, equally static meta emerges over the course of about 3 days. Nerf ridiculous release McCree to merely a normal level of broken, Genji devours the entire meta. Throw Zen's ult through the roof to counter dragonstrike and then separately nerf Genji, now no one ever dies because Zen + Lucio and both are 90% pick rates. Introduce Ana to "counter healers", forget that all teams need at least 2 healers so now Ana is 100% pick and the usual suspects are still present for healers. Entire meta bends around Ana.
They need to stop balancing around those competitive tier lists and start playing their own game. Lot of characters have been made less fun at lower level play because of failed attempts to make esport competitive more varied.
If you ask me, they need to make their maps consistent first. Characters are so wildly different in power level on each map (for example, Pharah on LT: Night Gardens vs Nepal: Shrine) that you just can't straight compare characters in terms of effectiveness, and that kinda kills competitive balance. For example, as long as Hanamura is in the game we can't have choke holding characters like Torb buffed past a certain point, even tho those characters are perpetually underpowered on most maps. They need to make gameplay relevant values more standard. Even things that should have been standard from the start, like distance from the objective to spawn, or the height of the skybox/killfloor, or whether there are walkable roofs present, vary wildly between maps or even inside the same map.