As far as prep goes, I use Sem Leather Prep. Last time I bought a quart at O'Reilly, it was $32 & this was over 5 years ago. Now, I've used this only on my interior leather since I no longer have vinyl roof cars. But it really peels off whatever is on the leather/vinyl including whatever you use for a protectant. A good way to tell if its all off is to put a piece of masking tape on & pull it off. If it sticks pretty good, you're all done. If not keep working it.
For dye, I've started to use either Color Bond or Malco brands. They both come in aerosol. I don't know if they would work on exterior vinyl since, as I said I don't have a vinyl roof on my cars.
Painting is easy, prepping is the key.
Back in the 80s when I used to do upholstery repair at dealer lots, I was using a water based dye, but I had to mix the colors. I sprayed a couple of vinyl tops with that using a Binks 150 gun, but I don't know how durable it was especially in Mn. weather. Never used any sort of crack filler.
Just for poops & giggles, have you looked into the cost of replacing the roof?