i had similar problems, i thought it was the plugs or the coilpacks so i got splitfires and new plugs. but it turned out to be my crank shaft sensor which caused my car to miss fire and struggling to reach 2000rpm. the mech said if the sensor is broken then it cause cause your valves to bend and screw up the internals, if i was you i get that checked out as well (error code 46)