How to declare and use "Variabled arrays" inside arrays
Something is wrong with your type description:

byte arrayX[4] = {1,2,3,4}; byte arrayY[4] = {5,6,7,8};

byte arrayZ[2][4] = { arrayX[4], arrayY[4] };


Serial.println(arrayX[2]); is equals to '3'. 

This is normal ... arrayX[0] = 1, arrayX[1] = 2, arrayX[2] = 3

However, the next one is not good:

byte arrayZ[2][4] = { arrayX[4], arrayY[4] };


You are declaring a byte array, but you add arrayX[4] and arrayY[4] which, where arrayX[4] is the 5th elements of arrayX but it has only 4 elements, so it points to memory outside the array (probably into the next array.

byte arrayX[4] = { 1, 2, 3, 4 };
byte arrayY[4] = { 5, 6, 7, 8 };

byte* arrayZ[2] = { arrayX, arrayY };

Serial.print(arrayZ[0][2]);


This should print 3 (not tested).