Maybe you haven't done a thorough job of porting the code. Are the timers still running? The OS needs the timers to be running (and generating interrupts) to know to switch tasks. If the interrupts aren't properly cleared/re-enabled in the ISR, then simply exiting the ISR and returning to whatever task/function that was on the stack when it was invoked might be the behavior that would result. The NVIC has certain requirements to clear the current interrupt so that following ones will be processed/posted.
This is just a suggestion in where to look, as I cannot see your code.
The Micrium website does have downloadable project ports for ARM Cortex processors of uC/OS-II and III, perhaps you can download those for more hints/clues on where to look for the problem. The site requires one to register an account to download, but it is free of charge.