This may be way out there is it going into limp mode idles fine but will not get above 2500 rpm`s. Check fuel lines first and see if you have an onboard filter on the engine. It could be your plugs are getting bad plugs will show up more when the engine is pulling harder causing missing, versus ideling. Could be water in the fuel system