I am working on a friends 2003 suburban 2500 lq4 6.0, he had a p0300 code for a while and another mechanic talked him into replacing the engine with a rebuilt one. He also replaced the crankshaft position sensor and connector since it looked damaged, he has also replaced the computer twice. Currently I am only getting a p0307 generic cylinder 7 misfire, rpm check engine light comes on at between 2-3k rpm. I swapped coils, new spark plug, new spark plug wire, checked for vacuum leaks, leaking fuel pressure regulator all check out fine. he normally runs 87 octane, I put in a few gallons of 91 to see if that would help and it did not change anything. Would a crankshaft relearn procedure help with this or would a fuel injector cause this? Any other help with this would be greatly appreciated.