The thing that might be giving you unexpected results is you are looking for the low state.
Code:
pulsin IR_Sensor,0,IRpuls_len(BitCount)
Change the "0" to "1" to read the high pulse.