Level 'em up! I think that's a really satisfying part of playing, and if you as the DM think they've earned it, I'm sure your players feel the same way.
I think rather than committing to the idea that the strongholds should be encountered at level x or with y monsters, you can get creative with your strongholds and improvise as needed.
So at the Stronghold(s), just because you start with 10 giants doesn't mean there's only 10 giants. Maybe the fight takes too long, so the remaining giants get scared and run off. Or maybe your party decimates everything in two rounds, so you send in reinforcements.
Similarly, you can adjust the HP and AC values of these foes at will. Maybe a fire giant getting his butt kicked trades his worn shield for a new one. +2 AC. Or the frost giant got hit so hard, his helmet went flying off. -1 AC. And so on.
Ultimately, try and get a feel for what is most fun for your party (and you!). Then you can adjust the late game encounters around that, and improvise as needed. If you think your players will require an extra challenge, Volo's Guide to Monsters and some tactics can help you change things up.
There are the ones designed for the campaign in the random boxes - here is an Amazon link to them.
They always contain a large sized one and three small ones in the set of 44.
You can also buy them as singles from sellers online. I really wanted two of each giant type so that’s what I ended up doing for the last couple as it was getting expensive buying random boxes and getting ones I already had.
Then COVID struck and we are playing online anyway :-).