SiliconWizard, you're onto something. In the schematic, the reset generator pin1 is hooked directly to the MCU pin 30, reset line of the MCU and was net named "MPURESET". There is no air line indicator that it goes anywhere else. But when I examined the programming connector, there is a pin labeled MPURESET there, so I have to assume that the programmer indeed hooks up to Pin1 of the reset generator. Very poor practice from whoever designed this (wasn't me, I just was tasked with improving the BOM). It should have been an open drain part!
So I think you are entirely right. The TPS part has a weaker totem pole output which allows the programmer to take it over. They definitely should have used a open drain output, with a resistor to pull it up. So if I change the part to a MCP1319M which has an internal pull-up and is open drain, it will probably work.
The high level output current on the MCP part can drive 2.5mA to the rated voltage. The TPS part is only rated at 120uA. What do you want to bet that the output pin on the programmer reset line has enough oomph to overwhelm this, but not the MCP1319 at 2.5mA.
The low level output current on the MCP part can drive 4mA to the rated voltage. The TPS part is rated at 3mA. Probably not the issue.
So it would be easy to conclude that the programmer can't drive the output low while the MCP1319 part is driving it high, which will occur after the reset timer times out (200ms). That's probably the problem. Both parts have similar output while driving low.
I will contact the CM with this. It is a plausible explanation. However, it won't help all the boards they have already built. I think it might work to jumper the /MR input to the programmer reset pin. So thank you very much SiliconWizard for making me look more carefully at the programming header. It also helped that the CM sent me a schematic that I could read. The one I got from the client was so fuzzy I could not read the net names.
And dear EEVblog designers: Please make sure that air lines are placed on the schematic for any net not directly shown as connected. As I said, the reset generator looked like it only went to the MCU reset line. Once I was able to read the net name, it seemed clear that this line also hooked to the programming header. For anyone who cares, I will add to this thread when I am able to prove that this indeed was the problem.