I have the same suspect ATMEGA328P U-TH microcontrollers from LCSC.
I had problems programming them too, and it seemed to have to do with clocking. I suspected that these ICs have some sort of weird clock feature/limitation that hasn't made it into the documentation yet (like how the 328PB had people scratching their heads for a while.)
Microchip put out a notice that they were relabeling their ICs, and I think that the U-TH has more to do where it was manufactured than what the ICs. There's a discussion about it here: https://www.avrfreaks.net/forum/another-it-fake-chip-thread-atmega328pu-th-tqfn-pkg
I don't have time to look into it further, but I can send a few chips to people who want to examine them.
I believe the U is just the package, and TH is a country code (Thailand). TH and PHilippines are typically found on genuine chips. KoRea and TaiWan were on the counterfeits previously found.
Did you eventually find a way to program them? If so, could you please run the sketch below and post the results here?
#include <avr/boot.h>
#define SIGRD 5
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Serial.println("");
Serial.println("boot sig dump");
int newLineIndex = 0;
for (uint8_t i = 0; i <= 0x1F; i += 1) {
Serial.print(boot_signature_byte_get(i), HEX);
Serial.print("\t");
newLineIndex++;
if (newLineIndex == 8) {
Serial.println("");
newLineIndex = 0;
}
}
Serial.println();
}
void loop() {
}