Во-первых, если ZH был > 1 (например, 2), то и будет считать до переполнения ZH - 2,3,4,5...253,254,255,0,1, и только при 1, наконец, сбросится регистр Z.
Ну, а вообще то, что ты хочешь сделать, делается гораздо проще и прозрачнее:
clr ZL
sts temCBH,ZL
lds ZL,temCBL
inc ZL
sts temCBL,ZL
Это эквивалентно твоему коду, и кроме всего прочего - работает. А почему - догадайся сам