Could you try it with try's:
time :: Parser TimeOfDay
time = choice $ map try [ tTimeHourMin, t24hrClock ]
In a very informal and loose description, if tTimeHourMin consumes some input before failing, parsec gives up.
Best,
Ozgur
time :: Parser TimeOfDay
time = choice [ tTimeHourMin,
t24hrClock
]