combined bytes wont shift.

Did you not get compiler warnings to let you know that your shifts would fail? If not, you should turn up the warning level in Preferences.

/Users/john/Documents/Arduino/sketch_sep22a/sketch_sep22a.ino: In function 'void setup()':
/Users/john/Documents/Arduino/sketch_sep22a/sketch_sep22a.ino:8:56: warning: left shift count >= width of type
   long merge_var =  (byte0) | (byte1 << 8) | (byte2 << 16) | (byte3 << 24);
                                                        ^
/Users/john/Documents/Arduino/sketch_sep22a/sketch_sep22a.ino:8:72: warning: left shift count >= width of type
   long merge_var =  (byte0) | (byte1 << 8) | (byte2 << 16) | (byte3 << 24);
                                                                        ^
/Users/john/Documents/Arduino/sketch_sep22a/sketch_sep22a.ino:8:8: warning: unused variable 'merge_var' [-Wunused-variable]
   long merge_var =  (byte0) | (byte1 << 8) | (byte2 << 16) | (byte3 << 24);

Test sketch:

void setup() {
  Serial.begin(9600);

  byte byte0 = 0x12;
  byte byte1 = 0x34;
  byte byte2 = 0x56;
  byte byte3 = 0x78;
  long merge_var =  (byte0) | (byte1 << 8) | (byte2 << 16) | (byte3 << 24);
}

void loop() {}