Hey Shrek, Welcome.
Code 111 is a system pass, or no problems detected.
You may want to do the test for vacuum leaks, but I suspect a temp sensor issue.
On these type of problems you could search for some physical cause, (like a vac leak), but the real culprit is a sensor with odd readings , or a reactive unit that is a bit slow...or fast. With the 111 code the comp is telling you that it can find nothing that feeds inputs outside the normal range, and all reactive processes are reading active.
The one thing that interests me is that you say the truck runs rich. If it is the comp would definitely pick up on that. UNLESS...this is happening only when the truck is cold and in the open loop running mode.
Open loop is when the engine is running on preprogramed perimeters, and not through the inputs from the system sensors. This happens when the engine is started cold, or a limp condition.
Perhaps there is a glitch as the comp switches from open to closed loop. ( examp.: open coolent temp spec 100f, actual coolent temp spec fluctuation between 98 and 101)
On these issues there are other causes that can be frustrating to find until there is a greater disparity for the comp to pick up, and give a code to guide you.
(EGR fluctuation,or sticking, o2 sensor, MAF dirty, IAT, CT sensor, dirty throttle body, dirty intake, Dirty or lazy injector pintel, etc.)
You may want to check voltage through the CTS when cold. ( sorry I don't have that spec on hand), but I suspect it is in range or the comp would throw a code.
Finally go back to basics and check base timing. Also you didn't mention mileage, but a can of seafoam may be in order. (dirty valves)
I would not try throwing parts at this problem, it can get expensive.These things can cause hair loss and bad eyesight........Sorry I couldn't be more help.
Good Luck