after 3 transmissions - I question your mechanic - he might be good at unbolting & bolting things together but has he thought of trans range switch (under console) ? If shifter gets cuaght between gears it throws same code and goes into "limp mode". They go bad from wear & tear but also when someone spills liquid in console area.
