I have an elderly neighbor that leaves his door open at night for his beloved cat. I know that his cat is a handful, his drapes are shredded!
Go to your local home improvement center and get a cheap outside light with a motion sensor on it and a lawn sprinkling timing device that you attach to your outside faucet. You're ahead of me already aren't you?
Temporarily mount this light fixture at the spot where the cat obtains access to the roof. Remove the light bulb and install a screw-in socket in it's place. Plug in the timer and set it for the shortest sprinkle cycle, attach the hose to a sprinkler on the roof and turn the water on at the faucet. Then when the cat jumps up on the roof, the motion sensor will turn the sprinkler on, the cat jumps off and, after a few of those treatments, you can relax. Cats are smart and will avoid getting a bath from then on. Hope this helps.
Cats do not like the smell of moth balls. I was told once that you can place a styrofoam cup in your gardens full of moth balls and this will help keep them from using the gardens as litterboxes. Maybe you could strategically place them on your roof. Maybe get a few milk jugs and place a rock in the bottom of each one to keep them from blowing away and pour moth balls on top of the rock. You may only need one or two near the area the cat gets up onto the roof.
Cats dislike the smell of citrus. Place oranges, lemons, or grapefruit (whole or peels), and scatter them on the roof. If you can get up there you can also spray the area with any lemon or citrus scented air spray directly onto the roof itself.
Please do not use moth balls. Moth balls are toxic for cats and although I know you don't enjoy its visits I am sure you would not like to kill it. Moth balls can kill or seriously affect a cat causing if not death, expensive vet bills which your neighbour could try to claim from you. Good luck. You may have to replace citrus from time to time as they become dried out.