I have managed to fix the problem I had. It was down to configuration in the Currency admin. I hadn't set up GBP properly I had set it to GBR for some bizzare reason. I looked through the paypal code and realised that it was doing a sum ((total - shipping) * currency) to pass the value over to paypal, as my currency was invalid the sum was coming out at zero. I don't know if you have the same problem but it is probably worth making sure the whole currency section is correct.
I am having exactly the same problem on one of my sites, I am trying to delve into the code, but I'm not sure exactly where it's going wrong. I am wondering if any changes I have made to the pages is the problem or wether it's a configuration issue in the admin section. I will tyr to post the answer here if I find it.