The last time I had to deal with AirBnB with a damage claim, it was pretty quick and painless. Once the payment was approved we had the money in our account in one business day. This seems like a really easy claim, as long as you can show proof of the cost.
Have you actually reached out to the guest about the issue? You might be able to get them to pay you for it directly. The last time I had serious damage, the guest just sent me money to cover repairs via the AirBnB app and I never had to submit a claim. I suggest sending the guest a message saying something like, "I hope you enjoyed your stay. It was a pleasure to host you, but we did have an issue with the linens. There appears to be some sort of ink or dye on them that I've been unable to remove using tried and true stain-removing methods. I was hoping you might be able to tell me what it is so I can try to find a way to avoid having to replace them." If they don't get the hint or don't respond, be more direct about telling them how much they cost and ask if they are willing to cover the cost of replacement. If they agree, you can use the "Request Money" feature.
Realistically, linens are consumables - You're going to have to replace them more often than you want. As for the review, if there was nothing else worng with the guests, I would probably not give them a really negative review. I would give a very generic, neutral review and provide private feedback about the linens. If they were all-around bad guests, then I would be negative, but professional about it.