I notice the staining on my white stuff first, steps, skimmer, pump & robot baskets.
I have pine and oak trees so I suspect tannins are involved in the staining as well.
I have used bar keepers friend more spray to clean them all up easily in the past since they are all removable objects that I can clean outside of the pool. It is a mix of citric and oxalic acids.
I thought I had just a couple spots on my liner and did the vit c/ ascorbic acid in a sock and it became very obvious that my entire liner was in fact a bit dingy. I was able to write my initials on the liner with the sock

I believe my cause was 3 fold- city water that contains a low level of iron which slowly increases over time,
some rusty screws,
& dirty Morton’s pool salt as the most obvious change was after a large addition of the Mortons.
My solution:
I can’t change my water source so I just try to take advantage of rain water whenever possible.
I got a skimmer face plug so I don’t have to drain then replace as much water upon opening. This also cuts down on how much salt I need at opening.
I replaced all the rusty screws.
I now only use aqua salt pool salt.
Since my liner staining was only light a starter dose of pro team metal magic cleared it up and small monthly maintenance doses seem to be keeping it at bay. I may try the AA treatment upon opening if the stains have returned with a vengeance, otherwise I will just carry on with the metal magic since I will have to use it either way. I missed the boat on doing it at opening last year as the water temps rose sooner than expected.
Hope this helps