So basically the problem is the engine won't turn up past 3,000 rpm but it has in the past. I would start with all the basics first, dump out the fuel filter, what does the fuel look like? water? crud/debris? check the antisiphon valve, if this is corroded and sticky the engine will idle ok and...