No me manejo con mnemónicos en código máquina, para depurar uso el monitor de VICE y así compruebo el contenido de las posiciones de memoria. En cualquier caso el código es claro, recuerda que está usando el bank 3 de ahí que cargue los sprites en posiciones como la $CFF8.
No veo el problema, hazte un programita desde cero que tampoco es tanto código. Es lo que suelo hacer yo para aislar un error cuando no consigo resolverlo rapidamente.