The most common cause of a P0300 random cylinder misfire condition on this engine are the following..
Faulty secondary ignition components..
dirty MAF sensor
leaky intake manifold gaskets
Plugged or restricted Fuel injectors
If these things have been done and or verfied as OK or good, then the next most likley possible cause would be to do a crankshaft position sensor variation re learn procedure.
Here is the relearn procedure..
Crankshaft Position System Variation Learn
Block the drive wheels.
Apply the vehicles parking brake.
Cycle the ignition from OFF to ON.
Apply and hold the brake pedal.
Start and idle the engine.
Turn OFF the A/C.
Place the vehicle's transmission in Park (A/T) or Neutral (M/T).
Important: While the learn procedure is in progress, release the throttle immediately when the engine starts to decelerate. The engine control is returned to the operator and the engine responds to throttle position after the learn procedure is complete.
Slowly increase the engine speed to the RPM that you observed.
Immediately release the throttle when fuel cut-off is reached.
With a scan tool, enure that it displays in Learn Status: Learned this ignition. Now the procedure is completed successfully.