You are providing a number that is overflowing. You could use the code bellow, but it will take only the four least significant bits. If the number is greater than 0x0F, the other bits will be ignored.
commandData = Convert.ToByte((SomeNumricData & 0x0F) | ((OtherNumericData << 4) & 0xF0));
CLICK HERE to find out more related problems solutions.