This would be a good scenario to be able to watch live data when the idle starts slowing down and it dies. Pretty much all the bidirectional scanners out through these days have that ability. (As well as reading trouble codes and clearing them of course) Cheaper in the long run than to keep throwing parts at it. You can select several parameters for it to display and track.... Drive around with it plugged into the OBD2 port..... Either look at it when the symptoms show up or replay the live data afterwards. It should point you exactly to the component that's causing the issue.