If we flip the logic and instead of pointing blame, ask yourself "Could I have prevented this?" The answer is yes. You knew it was there. So either way there's no direct 100% blame to apply to either party - start from a position of moving forwards. You need your roof fixed, your mate needs to make good on his original work, and you both value the friendship I presume.
Now onto the money. Am I right in assuming your mate is aiming to fix a year old job - in other words you're not paying anything for his time, materials and costs like labourers? In which case he is literally out of pocket for buying the first batch of lead. I can understand why he doesn't want to spend a second lot of cash on a no pay job. If that is the case, maybe be empathetic and shell out the cash for lead, to get your free roof fix.
It's an old job. If the roof has been leaking for a year that just raises even more questions about both of you.