Unfortunately no one makes a roof skin for a Blazer, yet at least. I had similar damage, but maybe not quite as bad, on mine.
This is where I started to tackle it in my build thread, which may help you. I chose to fabricate patches for it, which is doable but difficult and time consuming (I think I have close to 100 hours in the roof alone...). I still do not have the roof skin back on the cab, since I also took off the windshield frame/upper cowl panel, which layers underneath the roof skin at the top.
Like other people have said, if possible I would try to find a donor roof or even a donor complete body if you can. Even a "clean" body will likely still need some sheet metal repair (rust likes to hide), but it will still save you a lot of time.
Whether you repair or replace the roof skin, you will ideally need to remove it from the cab. It's spot welded on at all 4 sides: the back beneath the topper bolt holes, the sides to the drip rails, and the front at the windshield pinch weld. There is also some sort of brazing or something at the front corners to blend it with the A-pillars. I have some pictures in my build thread. You will almost certainly have some damage to repair underneath the roof skin as well, which is part of the reason why you should probably remove it.
If you can find a donor roof, the play is probably to sawzall the roof off the donor truck by cutting the B-pillars and A-pillars, leaving the entire roof structure (inner roof skin, outer roof skin, and the support pieces in between them) intact while you transport it back home. Then you can drill the spot welds to get the donor roof skin off cleanly.
I hope this helps, and good luck! It sucks a lot but it's doable. The one, tiny silver lining is you will have the opportunity to clean up and paint all inside the problem areas that you normally wouldn't have access to, which should prevent rust from ever coming back in those spots. Or at least that's what I'm telling myself to make me feel a little better about it.
