Firstly leaking flat roofs are common and are usually easy to fix, but you problem is more severe.
It would be nice if the builder would turn up tomorrow and fix the problem but that isn't going to happen.
In your shoes, I would write a letter to all three parties stating clearly that, unless the problem is fixed by [whatever date you can wait until but no more than a month], you will be employing roofing experts to rectify things and you will subsequently be demanding that the cost is paid by them. I would also mention that damage has been caused by the delay which is worsening with time. I would then, asuming nothing happened, pay someone to fix the problem (holding back a proportion of the payment until I knew it had been done properly). Depending on the damage, I would also consider employing a painter or plasterer to put that right (or I might just do it myself).
Then I would write to all three parties asking for payment within 28 days. When payment didn't arrive, I would write again threatening legal action if the matter is not settled within another 28 days. Then I'd visit this site and take legal action against all three parties.
http://www.moneyclaim.gov.uk/