After a heavy rainstorm, I saw stains on the ceiling of one of my rooms. What’s the proper way to repair stains on the ceiling caused by rainwater leak from the roof?
After fixing the leak, you might want to try bleach. I had luck with 25 percent bleach in water. I put a sponge, saturated with the solution, in a plastic tray and pressed it up onto the ceiling. The stain returned in a few months and so I did it again...it is now gone. You could try a small test area to see if it will work.
Bleach is nasty stuff. Take precautions.
AFTER FIXING THE LEAK is how this starts, but at a glance, that looks worse than a bit of bleach.
You probably have wet insulation that needs to be dried or replaced. You can find out for sure by cutting a small (8"x8") exploratory hole in the midst of the big stain.
If by some miracle, you don't have wet insulation, you now need to establish that the drywall is sound. Can you dent it with a finger? Is the edge of your cutout moist and easily crumbled? Then you need to cut back everything wet and replace it. Sorry. Failing to do that will probably lead to mold.
Lots of guides to fixing drywall on the internet. My only advice is to do many skim coats, rather than a couple of heavy ones that you need to sand a lot. Have at it.
There are products such as Ronseal Damp Seal, that are almost like a gloss. You paint over the stained part with it, and when it dries you paint it with emulsions as normal. It is supposed to seal in the damp and stop it coming back through the paint. I have used the Ronseal product and it has worked well.