Whenever possible, you should post code directly to the forum. Many of the forum members won't bother to download an attachment, so you are greatly reducing your changes of getting help by doing that. When the code exceeds the forums 9000 character limit, an attachment is a reasonable choice but all three of your sketches combined are still not close to 9000 characters.
You are definitely on the right track with your code, but you didn't take the time to fully understand the IR_READ code before moving on to the next step of combining the code.
In this code in your IR_READ:
Serial.println(results->value, HEX);
You should have read the reference page for Serial.println() to understand it:
https://www.arduino.cc/reference/en/language/functions/communication/serial/println/
The first parameter of Serial.println() is the value to print. In this case, results->value is a number. The second parameter of Serial.println() allows you to define which format the number should be printed in. To your Arduino, a number is just a bunch of 1s and 0s, but humans usually prefer them to be expressed in other forms. We are used to seeing numbers in decimal format, and this is the default format used by Serial.println(). However, in the case of remote codes, hexadecimal format makes sense and so this is why HEX was used for the format parameter.
It's clear you didn't understand the purpose of the second parameter of Serial.println() because it popped up in a very strange place in your attempt to merge the codes:
if ((results.value, HEX)==(S_volumeplus, HEX)) {
As I said before, the Arduino's microcontroller has no need to format numbers in some pretty way for its own purposes. That's something only of use when displaying a number for a human to look at. For this reason, there is no need or facility to specify the format of a number in a comparison. All you needed to do was compare results.value to S_volumeplus, with none of this HEX silliness thrown in to ruin everything.
And here it pops up again used incorrectly in a different context:
irsend.sendNEC((B_volumeplus, HEX), 32);
Now, I'll add an additional bit of advice to make a small non-essential improvement your code. You have multiple if statements, but you know only one will ever be true because results.value will only ever match to one of the Samsung remote codes at a time. In this case, it's best to use if, else if, etc. rather than if, if, etc. The code is more efficient that way because as soon as one of the statements is true, it will skip over the rest. It also makes the code easier to understand. Your current if, if, etc. approach will work, it's just not best practices.