I've had XM for years and never had an antenna move on me. But each situation is different, so here goes-
From the approximate placement, it looks as if the antenna is sitting on a slight curve on the roof, possibly causing less that perfect contact vs. a flatter section of metal. Think about moving the antenna closer to the middle of the roof, I guess.
Also, I'm a Rockblocker/Stongard/Xpel installer. So, I've got plenty of spare 3M material lying around. On my s2000, I just cut a section of material about 1/4" bigger than the antenna. That has worked very well.
Lastly, as others have suggested, try putting the antenna inside the car. Near a window would be best since the satellite need line-of-sight more than anything. You might be surprised that your able to still get the traffic stuff.
Oh and those scratches should buff right out. Find someone with a Porter Cable and some good polishing compound.