Hola, gracias por la ayuda.
pablinza: He probado con simulador y con ICD, pero el resultado es idéntico. Acabo de detectar que el problema es con una configuración faltante.
DominusDRR: En este caso no estoy usando MLA ni Harmony, ya que de momento es una prueba simple.
Para salir de dudas, instalé la última versión de Harmony (1.06), generé y configuré un nuevo proyecto y ha funcionado, la ISR para timer1 es:
#include <xc.h>
#include <sys/attribs.h>
#include "app.h"
#include "system_definitions.h"
// *****************************************************************************
// Section: System Interrupt Vector Functions
// *****************************************************************************
void __ISR(_TIMER_1_VECTOR, ipl7AUTO) _IntHandlerDrvTmrInstance0(void)
{
LATBbits.LATB7 = LATBbits.LATB7 ^ 1;
PLIB_INT_SourceFlagClear(INT_ID_0,INT_SOURCE_TIMER_1);
}
Revisaré el código de configuración generado para no quedarme con la duda. Ya por lo menos funciona, RB7 cambia de estado al desbordar timer1

Gracias,
Saludos