I'm guessing a bit about how you're turning your timestamp into a datetime value, but I think your problem is the difference between a time and a duration. Inputting 26:32:17 is most likely creating a datetime of 2 AM, January 2 1960. So the HOUR function is correctly returning 2.
The INTCK function returns information about an interval. If you ask for the number of hours in the interval between 12 AM January 1 1960 (datetime value 0) and your timestamp, you should get the correct 26.
I've put together a small sample program to demonstrate the difference.
Program
----------
data timetest;
chartime = "26:32:17";
timeval = input(chartime, time8.);
file log;
As_datetime = put(timeval, datetime.); put As_datetime =;
As_hour = hour(timeval); put As_hour =;
As_interval = intck("HOUR",0,timeval); put As_interval =;
run;
Log
---
As_datetime=02JAN60:02:32:17
As_hour=2
As_interval=26