Arduino's "Upload Using Programmer" for ATmega328 (not ATmega328P)
You could possibly solve the problem by trying the following variant of your approach:

Edit avrdude.conf (located in \hardware\tools\avr\etc) by going to the Atmega328P entry and then replacing "0x1e 0x95 0x0F" with "0x1e 0x95 0x14".

In other words, REPLACE Atmega328P's expected signature with that of Atmega328 (i.e., NOT make a separate entry, but instead actually replace... so as to essentially attempt to trick the IDE).

Be sure to restart the Arduino IDE after saving the .conf file.

Now, continue with "Upload using programmer", with Atmega328P board (i.e., the original) selected.

If that fails, you may instead use an FTDI board/cable to upload, if circumstances allow.