Check all of the Interrupt Pending registers to see what the interrupt controllers think they're doing. Check both IRLRn and IACKLPRn registers.
Check:
13.2.1.6 Interrupt Control Register (ICRnx, (x = 1, 2,..., 63))
Each ICRnx specifies the interrupt level (1–7) and the priority within the level (0–7). All ICRnx registers can be read, but only ICRn8 to ICRn63 can be written. It is the responsibility of the software to program the ICRnx registers with unique and non-overlapping level and priority definitions. Failure to program the ICRnx registers in this manner can result in undefined behavior.
Multiple TPU interrupts at the same priority/level could be causing this.
There's nothing in the errata for this chip matching this problem, but read SECF180 in the MCF5208 Errata and make sure you're not triggering any Spurious Interrupts.
Tom (A Random Poster)