Disclaimer: I'd like to challenge the frame of the question.
Spotlights and characters
The Barbarian, Druid, and Rogue feel outclassed as they do less damage and take less damage. The only player who has not been outclassed is the Wizard, who is used for their AOE on smaller boards of enemies.
No matter how well balanced your party, no two characters will be equally suited for a specific role. I find it extremely unlikely that you could manage for 4 characters in your party to withstand and dish out damages in equal proportions.
In my experience, it is better instead for each character to specialize in fulfilling different roles. If we review the archetypal party: Cleric, Fighter, Rogue & Wizard, for example, we could attribute the roles as:
- Cleric: buff/support spellcasting & melee tank,
- Fighter: melee tank & damage dealer,
- Rogue: skill monkey & glass cannon,
- Wizard: debuff/control spellcasting & knowledge repository.
In this archetypal party, while multiple characters can successfully wade into melee, one of them is best suited to the task and will likely outshine the others in this role. This is fine! The character has been optimized toward this role, at the cost of not being able to fulfill any other role satisfactorily!
The point here, however, is that it should not matter that a character is much better than the others in a specific role, as long as the other characters have something to do.
Or otherwise said, at the end of the encounter, every character should have something to boast about.
Spotlights and your party
Your party roster is slightly different, of course. The Barbarian is of particular concern to me, so I'll quickly get the others out of the way before coming back to it.
First of all, you mentioned that the Wizard is not outclassed. Their player found a role the character was uniquely suited for (in the party): awesome!
Next comes the Druid. The Druid is an extremely versatile class, it feels hard to believe that there is nothing the Druid can do which the Fighter could not do better. My experience has been that Druid were pretty good in crowd control for example: immobilizing or separating parties of foes, or providing summoned animals to distract/occupy the mooks.
Then comes the Rogue. The Rogue has extensive out of combat utility. They make great scouts or spies, for example, which a clunky Fighter with no social grace cannot hope to achieve. To balance that, the Rogue in combat utility is reduced; which should be fine unless the campaign is combat heavy...
Having been the Rogue in such a combat heavy campaign, I can tell your heartily that it can work out so long as the DM cooperates1 (or at least, avoids meta-gaming). Specific examples of roguish utility include:
- laying down simple traps (trip-wires) on the flanks to avoid/delay flanking maneuvers from the foes; just one or two can be quickly laid down between the time the foes are spotted and the time the fight breaks out.
- hiding in a recess/behind a tree to backstab whoever charges the Big Stupid Fighter as they pass, or trip them; or wait until they're engaged to spring on their back.
- springing on the grappled foes, they are at a disadvantage being grappled making them easy targets.
- sniping from a hidden spot; then boasting how the fouls didn't even spot you in the whole fight.
- and of course, finishing off the foes the Big Stupid Fighter brought within an inch of their life; and rile up such Fighter who clearly cannot do anything by themselves :)
Certainly, on a pure damage for damage, a Rogue may not do as much as the Fighter, and will certainly not be able to sustain as much as the Fighter. This calls for a different fighting style, one laced with shadows, and arsenic.
And the big elephant in the room is... the Barbarian. It's quite unfortunate, really, to have two characters vying for the same role in the party.
I've played (part of) a campaign as a Fighter with another Barbarian in the party, and we just focused on slightly different aspects of melee combat: I picked up a reach weapon and focused on reaction/control/toughness while the Barbarian focused on pure damage output. We made quite a good team; I'd stop the foes in their tracks, killing the mooks outright, and the Barbarian would jump on the stronger ones, hacking them apart2.
Normally, I'd have recommended to establish such roles beforehand, but it's never too late! You can sit down with both the Barbarian and Fighter, and discuss with them how they'd like to proceed, with luck they both have different goals for their characters.
Using the size bonus with half giants and their natural strength, they won 90% of grapple checks, leading to changing to 5e ruled for grapple checks, which has helped a bit.
For example, letting the Fighter focus on grapple (So what if they generally win? It's only one foe out of the fight!) and have the Barbarian dish out damage. Or let the Fighter focus on 1-on-1 combat and have the Barbarian become a menace for crowds. Or...
Building awesome fights
In parting, I recommend The Angry GM serie of articles The Angry Guide to Kickass Combats, and specifically the 3rd article: Let’s Make Some F&%$ing Fights Already!.
As you'll gather from the title, the writing style of the author is full of expletives. Even if this is not to your liking, though, I really encourage you to read the articles if you wish to improve as a DM.
The author breaks down building the encounter in a serie of steps. Of particular importance here:
- An encounter should be design against a standard party, unless your foes (a) have prior knowledge of the party and (b) have the intellectual acumen to tune their strategies for such a party. Avoid overspecialization.
- If you force some members of the party out of their comfort zones (say, by using flying foes...), make sure that said party members have a viable fallback strategy open to them.
Remember that you design an encounter to challenge your party because everyone comes here to have fun. Challenging the party may mean shutting down some characters to force them to think out of the box, or simply providing a whole lot of foes. Whatever you do, however, it's up to you to ensure that every character has something to do.
As an example, imagine the typical James Bond villain and its doomsday device. The party finally corners the villain in its lair, and obviously, the villain is on the brink of firing the device! The villain's henchmen charge the party, a few minions work in a frenzy to get the device in firing position, and the villain flees as its bodyguard takes position in front of the escape door intent on crushing anyone attempting to follow its boss... and starts firing bolts from its crossbow.
Your Big Stupid Fighter outdamages anyone in the party? Cool. But unless it can both fight the henchmen, disperse the minions, disarm the device, take down the bodyguard, and catch up to the villain... it will need help. Lots.
Luckily, it's got a party with it.
With all that said, you could always talk to the player about nerfing its character a tidbit. The most obvious being reducing its statistics a bit. Or you could boost the others' statistics. However I'd be wary of the precedent this sets; and encourage you to try to achieve harmony at the table without setting up the players against each others. It's a party, not a competition.
1 If the DM is meta-gaming, however, with the foes always attacking from the other (trap-less) side, or always figuring out where the hidden rogue is within the first round of combat "somehow" (negating the rogue's sneakiness), then it's not gonna be fun. Not at all. I've seen both; the latter is ugly.
2 You'll note that the roles were quite suited to the class archetypes, the Fighter acting for tactical advantage and the Barbarian tearing foes apart in a frenzy.