I dunno about the whole lock your main in solo queue that seems to be so common. What has been working for me right now is to just fill whatever role is missing on our team comp. From what I'm seeing, locking your main works fine as long as your team picks based around that, but things just go shitty when everyone tries to do the same because 1.) it tilts them and 2.) usually brings too many dps.
I just try to believe everyone is capable of winning and avoid telling them to switch. The opposite tends to bring toxicity out of people and that's when things get desperate.
I've been having success by filling in the gaps, so to speak, just like you are suggesting. This works a lot of the time but is by no means foolproof. Some teams are just beyond saving.
But on a decent team that just might be missing a crucial piece being willing to play that role can make all the difference. For me lately, that role seems to be "initiation". Looking back over my Overwatch experience I can clearly see that in many groups of randoms, initiation is often a problem for a team that is on attack.
Folks might know what to do but no one seems to want to make the first move and get everyone started. Or if they do make the first move it's just to run into a 1 v 5 situation and die immediately. Smart initiation gets everyone on the same page and then makes an opening so that your team is put in an advantageous attack situation.
The Overwatch coach Skyline says that after making sure your team has enough damage, initiation is the second most important component for a healthy team composition. I've linked his channel again because he does such a good job explaining it but if you've ever been on a team that just stood at the choke and poked all match or just trickled in and died over and over then you've been a victim of a team with bad initiation.
Props here to Winston who's an amazing initiator but he is by no means the only way to initiate. I just happen to really, really like his play style.