OK - First of all - oil based paint it the worst thing for a mildew problem - alkyd binders are natural materials - THEY ARE FOOD FOR MILDEW!!! Your painter gave you some horrible advice there.
You must clean the mildew off - a 3:1 bleach/water solution - leave it on 20 minutes - then rinse with clear water.
Apply one coat of Glidden Ultra-Hide Gripper (Primer) - it is latex and will stick very well to oil.
Then apply TWO coats of Glidden Ultra-Hide or Ralph Lauren latex semi-gloss paint. Two coats provides more paint - thus more protection.
Finally - use your fan as you have - make sure you leave it on 1/2 hour after a shower. Additionally - once a month or so (or however often you clean the bathroom - wash the ceiling with the 3:1 bleach water solution.
IF you follow these directions - you will never have a mildew problem again.
ps - mildewcides are toxic - and leach out ( dissipate completely) in about 2 years - making them an ineffective - and potentially hazardous long term solution.