Problems sending midi messages - values not the same at arrival

Sorry, but that's not true. An int is an int. Midi doesn't understand what Strings, or hex, or decimal are. It understands binary, just like all computers.

This format

#define OPCODE 0xB0 // midi CC operation code
#define CTRL01 0x48 // controller number code

is for your benefit. The compiler turns them into binary, just as it would regardless of how you define them in the source code.

Change this line

  Serial.print(hexMessage); // code for the new value to send

to

  Serial.write(message); // code for the new value to send

and see if it makes a difference.