If you can’t get any decoders to program on the programming track, it would seem the problem is either with the connection to the programming track, or with the DCC system. Is your programming track connected only to the programming leads of your system, or is it a track on your layout where you have a DPDT switch to change back and forth??
BTW, have you tried reading back the decoder/engine’s ID number?? I had a situation where I tried and tried to change a decoder’s CVs but apparently nothing happened. Turned out somehow I had changed the ID number, so I was changing the CVs but the decoder wouldn’t respond because my DCC system was using the ‘wrong’ ID number. Once I corrected the ID, everything was fine.