ИМХО, просто ты какие нибудь регистры SFR не инициализируешь, а они влияют на правильную работу. У меня тоже недавно была такая засада с PIC18^ снимал питание, вытаскивал его из панельки, ждал секунд 10, перепрограммировал, а данные в SFR сохранялись. Строчку в проге закомментировал и забыл.