>420どもです。

「数値参照文字」でML等をググってみたところ
mb_decode_numericentityという関数があって数値参照文字を変換できるみたいです。
ただ、mb_decode_numericentityは16進数には対応していないので一度16進数を10進数に変換してあげないといけないみたいです。

以下、サンプルです。
$str_x16 = "システム"
$str_num = preg_replace( '/?x([0-9a-fA-F]+);/e', '"?" . hexdec( "\\1" ) . ";"', $str_x16);
$str = mb_decode_numericentity($str_num, array(0, 0xffff, 0, 0xffff), "euc-jp");

ありがとうございました。