The metal looks bad, as you said, but to it seems it needs a second or third coat of paint. Right now it looks patchy and uneven.
For the roof, I have used caulk, rubber coat spray and Henry's Tropi-Cool roof seal on my campers roof with great results.