No método, que gera o CRC16, coloquei no final:
if (strlen($hex) == 3) {
$hex = '0' . $hex;
}
Nos novos testes, não chegou a ocorrer 3 caracteres, mas deve resolver caso ocorra , talvez possa ajudar quem precisar também para o PHP.
Outra forma, feita pelo <@!440035527127990273> : $hex = str_pad((string) $hex, 4, "0", STR_PAD_LEFT);
Adiciona zeros até dar 4 caracteres, logo se faltar 1 zero, adiciona um e assim por diante