I repainted mine in situ last year and it has held up really well.
Gave the entire roof and sunroof/metal a thorough wash and clean,then dried. Next went over the entire metal surface with fine grade wet,n,dry very well soaked.Progressively smoothed the surface so all that was left was either well coated original paint or bare aluminium.
Carefully masked the inner and outer edges so just the black metal was visible,,PITA to do as took ages with all the corners but the neater you mask it the better the result.
Then with a thin painters brush applied several coats of Smooth Black Hammerite,leaving couple of hours between coats.This was done outside but was mid summer so dried pretty quickly,although sure a warm garage would be better ,or certainly as good.
Once final coat was dried I applied 3 further coats of clear laquer again with a thin paint brush.
The finished result was great and has not shown any problems of paint peeling since then .
Cost was less than £20 ,although cleaning hammerite from a thin paint brush was not simple so I ended up throwing away after each coat but at £0=85p each from our local shop it was cheaper than brush cleaner.