Мда. В строке 17131 у нас различие в регистре F. Это после исполнения "BIT 0, (HL)". Причем различие не во флагах 3 и 5, а в ZF и PF. То есть, снова что-то не то читается из памяти. В момент чтения HL равен #FF45. До строки 17131 эта ячейка ни разу не модифицируется. Значение этой ячейки до первой модификации должно быть равно #0E=%1110. Нулевой бит сброшен. У меня на эмуляторе после проверки бита ZF и PF взведены, что и должно быть, если значение ячейки равно #0E. У вас в трейсинге оба флага сброшены. При этом, судя по тесту на флаги, сама инструкция реализована верно. Остается грешить на память?
Что можно попробовать. Можно вывести тот же трейсинг, скажем, первые 18000 строк, но в каждую строку добавить текущее значение в ячейке #FF45.

