Если кому-то интересно, как решилась проблема, то сообщаю

Добавил в собственный загрузчик команду вычитывания флэш. Промучался с ней, так как читала ерунду. Только после вдумчивого повторного прочтения даташита uC007 с сайта AnalogDevices обнаружил следующую довольно неожиданную вещь - в режиме ULOAD команда WRITEBYTE (0x82) пишет байт по заданному в EADRH/L адресу из регистра EDATA1 во флэш. Но команда READBYTE (0x81) читает байт по адресу EADRH/L почему-то не из флэш, а из flash/EE data memory. Читать флэш нужно при помощи MOVC или указателя на code, если это Си. Смысл этих телодвижений не очень понятен, все другие команды режима ULOAD работают именно с флэш (flash/EE program memory).
В связи с этим прошиватель мой и не работал - я сразу после перехода в режим перепрошивки стираю всю память и ставлю в 0x0000 прыжок на 0xE000, там лежит мой загрузчик. После этих манипуляций даже прерывание режима программирования внеплановым отключением питания не смертельно - можно начать все сначала, сбросив прибор. Затем я получаю новую прошивку и пишу ее во флэш, все, кроме первой страницы (там же у меня джамп на тело загрузчика

), первая страница пишется в конец перепрограммируемого кода (0xDFC0), длина у нее 0x40 байт. После успешного окончания программирования (контрольные суммы пакетов, чтение прошивки для сравнения - все как полагается), я стираю первую страницу и переписываю ее из 0xDFC0. Вот в этом месте я и писал в начало прошивки бред, вычитанный из flash/EE data memory.
Вроде бы все. Надеюсь, кому-то в будущем поможет.