I used to sell vintage linens. I would use OxyClean. I have a special large glass "casserole" pan that I would put the linens in. Cover the linen with OxyClean water. Then I would put on my griddle burner on low. I would leave it there for a few hours. I found that the warm water was better.
If it was a large piece, like a tablecloth, I would use the bath tub.
Rinse it well and if possible, dry in the sun.
This method definitely removes some stains and most yellowing.