A minor error caused big (hard to figure-out) bugs.
In DSP2833x_PieCtrl.h, the line:
extern struct PIE_VECT_TABLE PieVectTable;
really should be:
extern volatile struct PIE_VECT_TABLE PieVectTable;
---
Curiously, this header file for some other chips are also missing the volatile keyword.