Have you looked into Ospho / Phospho? It is a must on rusted surfaces, but have used it with success on pre-primed surfaces. Clean off the surface, paint this on it (it's an acid mix if I remember correctly), let it dry, and then clean off any loose powder/scaling/dusty paint left from the Phospho working. Paint sticks great after this treatment. Can't say I've used it over enamel, but I think it would work. May be worth looking into.
Also, you may want to look into Hammerite paint. It's made by the same people who make Kilz primers. A bit pricey for larger projects, and can take a long time to FULLY cure, but is about the hardest, best-sticking paint I've ever used. Beats Rustoleum in every application I've tried. It comes in hammered and gloss finishes.