Cuanto bytes soporta toInt()

Cada byte puede contener valores entre 0 y 255 (en decimal) que en hexadecimal se representan como "00" y "FF".

Entonces lo que estás enviando con cada par de caracteres es el valor de 1 byte pero codificado en hexa.

¿Por qué no hacerlo en decimal?
Porque tendrías que enviar 3 dígitos (entre "000" y "255") y la trama sería más larga.

Como tanto de una u otra forma hay que convertirlos al recibirlos para pasar los caracteres al valor que representan, lo mejor es elegir la trama más corta.

Si tu trama envía el contenido de 12 bytes, sí, tendría 36 caracteres.
Tienes, los 2 que representan el número + la coma de separación, son 3 caracteres × 12 = 36 (suponiendo que incluso el último de la trama lleva la coma).

Saludos