So I have been looking around for months for this exact problem all through the internet, engine bay and where I could think, knowing the problem is still there is my biggest headache. My missus owns a 2004 model y61 Gu ZD30 and it won't get past 80 unless going down a hill, in neutral it will hit redline @ 4500rpm when in gear with clutch in it'll hit 3000rpm
I changed the intercooler due to it leaking, I then put the terminals back on the battery and on the first start up it hit 4500rpm in gear but then appeared to go back into limp mode at 3000rpm.
I tried checking the MAF and looks clean but am waiting for some CRC cleaner as I leave in a remote community in Cape York and no automotive shops around.
Also thinking about buying the ECUTalk OBll scanner to find out the fault.