Your pool float isn't scratching the liner. The grit on it is.

The vinyl liner isn’t getting scratched by the float itself — it’s the sand, dirt, and grit stuck to the bottom of the float that grinds into the vinyl every time it shifts.

So the fix is simple: rinse your floats off before you toss them in. Thirty seconds with a hose kills most of the problem. Keep them out of the dirt when they’re not in use, and don’t let them sit on the pool deck where they pick up debris.

Also check the hardware.