For cleaning I just use a sponge with soapy water. I used to get scratches on the visor but it was mainly because I left it lying around on the floor, or forcing it in my topbox which never has enough room!
But to get rid of light scratches toothpaste can work.......if they are a little deeper then something like autsol (metal polish which is a bit abrasive) is also good

. For deeper ones there's not much you can do.....replacement visor?