Easy fix for the dearth of tanks and to make them fun and viable would be to have a scaling right-click damage buff on a per hero basis. The lower the health the higher the damage buff.
This gets around all the other passives that are making it frustrating by promoting the tank role by soaking damage as well as being fun.
As it’s a per hero basis the increased damage per swing/shot could be balanced out depending on the speed of swing/shot. Rein would be much higher than D.Va. The familiar Blizzard risk/reward formula at work.