So I thought of the most outlandish balance change today, which is probably stupid, but I think I should mention it anyway since it might fix Bastion.
So Bastion's the one character no one is really happy with. Its not fun to play against him (unless you destroy him easily), its not fun to have one on your team, and most people I've known who play him express that either he utterly sucks, OR it feels cheap to get kills as him.
Everyone focuses on what makes Bastion annoying to play against, namely his absurd damage in turret mode. In even slightly ideal circumstances, Bastion deals enough damage to beat out Junkrat even pretending Bastion can't headshot. Its stupid high, it makes everything else in the game look weak. But I'd like to look at it from the other way: what makes Bastion so annoying to play as. Specifically, you have to play like a massive coward at all times or die almost instantly. Get separated from your tanks/supports, die. Pick anything approaching an even fight in recon mode, die. Set up in sight of an enemy, die. Set up anywhere other than an elevated position or around a corner, die. Hanzo presses Q, you die, even if you did nothing wrong. The fact of the matter is, there's a lot of crazy shit in Overwatch, and being unable to dodge makes poor Bastion almost helpless. If an experienced player looks at him funny he'll blow over like cardboard. That's why he needs to be babysat constantly or used as a surprise pick, because he's the only Overwatch character who has to make himself significantly more vulnerable than he is normally in order to use his skillset effectively. This is why Bastion needs to have his turret damage so high, because its the only effective way he has of protecting himself solo.
So, my proposal (bear in mind its a huge buff, so it would have to be matched with a huge nerf to something else): Bastion can use self-repair while dead, and resurrect himself into recon mode. The limit being that it takes him a few seconds do so, and he's totally helpless while doing it, so he needs either babysitting or all nearby enemies to be dead in order to get it off (and he dies for real if he takes much damage during the attempt). Ok ok, so hear me out. Currently, if Bastion sets up anywhere even slightly exposed and isn't babysat, a ranged character will corner peak and kill him with very little effort. With this change, that would still happen, and the team that killed him would be safe for a while, but Bastion's teammates could scare off the enemy, or protect him somehow, and then he could come back. So the Bastion player doesn't have to be a coward all the time. The player can actually play the damn game instead of camping and twiddling their thumbs for minutes at a time. It would also mean that recon mode would have a niche of its own. Since Bastion would achieve a sort of tankiness through expendability, he could act in a way too dangerous for other non-tanks, content in the knowledge that as long as his buddies win the overall battle he can be right back in the fight without having to walk back. It would lend recon mode something special no other character has.
I'd also point out there's precedent in the game for this. There are two characters focused on bringing others back into the fight quickly (meaning that's not meant to be a unique mechanic), and on top of that there's another character (D'va) who can do shit like take a RIP-Tire to the face on purpose because she can, effectively, resurrect herself.
Finally, self-repair has no excuse to be in the game. The way Bastion is played, when the fuck is he even supposed to use it? A Mercy is healing him or he's dead anyway. And if he escaped whatever was damaging him with no mobility or defense abilities its safe to say he could just find a healthkit. He doesn't even have that much health. This change would give self-repair a reason to exist.