waxed based undercoatings, when hot get soft, sand and dirt sticks. Pretty much the same with apshalt or bitumin based products.
Have had pretty good luck with resin based undercoatings and pre coatings. Teroson (Henkel/Loctite) makes a product they call undercoating primer, resin with a rust inhibitor, works pretty good.
Primers designed for galvanized applications, say rain gutters, generally adhere well and last. Have heard good things about Hammerite, I usually use good old Rustolium enamel as a top coating, galvanized metal primer or cold galvinizing primer as a base. On sand blasted metal, Rustolium rusty metal primer works as good as anything else and lasts. Rusty metal primer, doesn´t do well when painted over loose rust and dirt.
Getting it clean is often the major problem, coating dirt and dried mud, just makes moisture traps and adds to the problem most times.
An undercoating sprayer and a three foot plastic extension with a rossette (side spraying) tip will reach most everywhere inside a frame.
Have used boiled Linseed oil (resin/varnish) cheap and works well most ways. Maybe mix in your own rust inhibitor.
Spraying dried mud with a bio oil (chain saw, chain oil), often helps seperate the mud from the frame, then a good coating of Simple Green and a high pressure washer, removes most of the rest of the crud.
Most any material sprayed as a mist, is flammable/explosive, from varnish to oil.