OK the TSOP4838 is a good receiver.
The signals are consistent with the exception of signal 2 which has some errors in it.
I imported your 4 signals & have attached a signal trace image from AnalysIR - see attached. It a 24 bit signal with lead-in mark/space & trailer mark.
I am just showing signal 1 and signal 2 in the image. Signal 1 is the good one and you may be able to see some signal degradation on signal 2(yellow).
Signal 3 & 4 are similar to 1.
The bad news is that this protocol is not supported by IRremote and you will have to use RAW mode to send. You will have to write your own code or modify the library to detect this signal (or you could just change the definitions in the library for NEC to match your signal)
Finally, I have included some automatically generated code from AnalysIR to send each of these signals in RAW mode
(you will need to define khz as 38// int khz=38;// and you may run out of RAM if you try them all together. Also signal #2 looks bad)
/*
Automatically Generated by AnalysIR - Batch Export Utility
Registered to: xxx
Session History
Type : Key : Value : Bits
0 : RAW : 4th : : 0
1 : RAW : 3rd : : 0
2 : RAW : 2nd : : 0
3 : RAW : 1st : : 0
*/
// NB: Not all protocols are supported by IRremote or IRLib. You may need to edit the code below manually
// Automatically Generated by AnalysIR for xxx, visit http://www.AnalysIR.com or email info@....... for further details
unsigned int Signal_4th_0[] = {4150,3800,650,1800,600,1900,550,1900,600,1900,600,900,550,1000,500,1900,600,1900,550,950,500,1050,500,1000,450,1900,600,900,600,900,550,950,550,1050,450,1900,550,1900,600,950,500,950,600,1900,550,1900,600,1900,550,950,550,1000}; //AnalysIR Batch Export - RAW
irsend.sendRaw(Signal_4th_0, sizeof(Signal_4th_0)/sizeof(int), khz); //AnalysIR Batch Export - RAW
// AnalysIR IR Protocol: RAW, Key: 4th
unsigned int Signal_3rd_1[] = {4100,3800,650,1850,600,1850,650,1850,600,1900,600,1050,350,1000,500,1950,500,1950,550,1050,450,1000,500,1050,400,1950,550,1050,450,1000,450,1000,500,1000,500,1900,550,1950,550,1050,450,1050,450,1900,550,1950,550,1900,550,1000,500,1000}; //AnalysIR Batch Export - RAW
irsend.sendRaw(Signal_3rd_1, sizeof(Signal_3rd_1)/sizeof(int), khz); //AnalysIR Batch Export - RAW
// AnalysIR IR Protocol: RAW, Key: 3rd
unsigned int Signal_2nd_2[] = {4000,3900,600,1900,600,1850,600,1900,550,1900,600,900,600,900,550,1900,600,1900,550,950,550,900,600,950,500,1950,500,1300,150,1000,550,1100,350,1050,450,1950,550,1950,500,2450,550,1950,500,1950,500,2000,500,1300,200,1000}; //AnalysIR Batch Export - RAW
irsend.sendRaw(Signal_2nd_2, sizeof(Signal_2nd_2)/sizeof(int), khz); //AnalysIR Batch Export - RAW
// AnalysIR IR Protocol: RAW, Key: 2nd
unsigned int Signal_1st_3[] = {4000,3900,550,1950,550,1900,600,1900,550,1900,550,1050,450,950,550,1900,550,1950,550,950,500,1000,500,950,550,1900,600,950,500,1000,500,950,550,1000,500,1900,550,1950,550,950,500,950,550,1950,550,1900,550,1950,550,1100,350,1000}; //AnalysIR Batch Export - RAW
irsend.sendRaw(Signal_1st_3, sizeof(Signal_1st_3)/sizeof(int), khz); //AnalysIR Batch Export - RAW
// AnalysIR IR Protocol: RAW, Key: 1st