Fine particles of steel will cause rust spots on uPVC. Local uPVC frames were spotting with rust a treat until the local bridge engineering works put decent filters on it's girder shot blast extractor system. No liability admitted, obvs. Steel cutting or grinding discs used close by, even when care is taken to grind away from the house, can also put enough particles in the air to cause this.
Following relevant health/safety precautions SAFETY GLASSES, PROTECTIVE GLOVES ETC (keep some water at hand, in case of spills etc), pick up 500ml of 5% solution oxalic acid online from the usual suspects. A few teaspoons in a plastic or stainless egg cup mixed with a TINY pinch of wallpaper paste, left to stand for a minute because it will thicken when actually you really want it to be still very mobile, but not able to run off surfaces. Try it on a small area 1st to check it does no damage. Apply with a small stiff artist type brush, wait for maybe 15 minutes or so (DO NOT LEAVE THE CLEANING OPERATION UNATTENDED), then gently work using the tip of the brush to remove the rust, you won't need an abrasive type cleaner. Then wash everything thoroughly with soapy water. It also works on rusty patches on stainless, where you left a steel screw on the wet drainer overnight. It works. REALLY well.