Isn't it okay to say "stain" not "staining" here? What's the difference in nuance of between those two?
Yes, "staining" is appropriate here because it is being used as a noun (a discoloration). You can substitute "staining" for "stains," also a noun, without any change to the meaning of the sentence. "Staining" can be also used as a verb, meaning to produce a discoloration or create a stain. Ex: The furniture is old, so it has a lot of staining. Ex: The scandal is staining the company's reputation.