Why have you any delay() in the setup() for the interrupt code? Why is is random? I doubt if either is needed.
NEVER NEVER put serial.print() statements in an interrupt routine. Just use the routine to record the time and quit - do the comparisons elsewhere, outside the interrupt routine.
What is the timing supposed to do? I thought you just want to transmit something when an IR signal is detected? Why not just record True of False depending on whether the IR signal is detected?
Where does vw_setup() come from? - there seems to be some code missing.
The transmitter code seems to be designed to transmit if it receives a '1' from the serial monitor. If you want that to be sent when the IR signal arises then that test has to replace the if(Serial.available ... etc).
...R