I understand your confusion. There are some rules for reading numbers, but also many exceptions.
: (
Mostly before "hour" we use the native Korean numbers as in 1시 = 한 시, but before " second" we use the sino Korean numbers as in 30분=삼십 분.
As for 24 hours, we use both 이십사 시간 or 스물네 시간. I guess 이십사시간 is more common. ^^