Finally got to the bottom of my rev problem. I had sticking revs, then random idle and sometimes random revving up to about 5k on its own. Then of course the heartbeat light would come on and put me into limp mode.
Well, i'd be regularly been cleaning the throttle body but it started happening after i'd taken it off and given it a thorough clean so i dismissed that.
Anyway i read on here about engine fuse box so decided to have a look at mine. It was terrible. Lots of corrosion to connections for fuses and relays. I took every one out and cleaned/filed the legs, sprayed with wd40 and replaced. Now its perfect and has been for at least 2000miles so far! Warning though, make sure you have your radio code to hand!!
At last i found it!