Metal roofs can be painted. The preparation is key; washing to remove oxidized paint, the removal of silicone sealants and neutralizing rust are part of this process.
It is true that any applied paint or coating can peel, but is less likely when a good products are chosen and properly applied. Fading or discoloring can happen to any paint.
The best coating would be a 2-component polyurethane enamel, this is similar to implement/heavy equipment paint. A regular house paint can't be used. Double check any chosen paint for compatibility and best primer.