__interrupt 0xEE ...
1) Here ^^ the number past interrupt keyword is not the lower address of interrupt vector, but the number counting down from top vector at 0xFFFF. For reset vector at 0xFFFF you write 0, for clock monitor vector - 1, and so on. 85 is TIM channel 0.
2) TIM and ECT are different timers with different vectors. 0xEE is lower part of ECT channel 0 vector. TIM channel 0 vector is at 0xFF54.
3) I guess it may be not specified in any document, hope there is some application note, but instead of numbers here you should use defines from derivative header file. In MC9S12XEP100.H you may find defines like
#define Vtimch0 0xFF54U
and
#define VectorNumber_Vtimch0 85U
Using these defines instead of magic figures, later it will be much more readable and easier to you to change timer channel or interrupt number without looking into datasheet. So please do
interrupt VectorNumber_Vtimch0 void TimerOverflow_ISR(void){ ...
4. Pragmas in your code are used correctly.