Цитата
Не хотелось-бы такие грубые заплатки использовать...
Посмотрите, что там с битами конфигурации.
Частенько забывают выключить режим низковольтного программирования, который, по умолчанию, включен. Если RB3 никуда не притянут и болтается в воздухе, то наводка на него может переводить PIC в режим программирования, со всеми вытекающими. Причем, для этого часто достаточно переключения уровней на соседних ногах.
Вторая возможная причина - импульсные наводки на MCLR, как выше питания, так и ниже земли. Даже если MCLR отключен (подключен внутренне в VDD), это может приводить к зависаниям и самопроизвольному переходу в режим программирования. В этом случае помогает внешнее подсоединение MCLR к Vdd напрямую.