I don't understand your logic. If you receive an ID of 7, you have 7 other IDs to relay with, from 0-6 or you can wrap around to 0 (though it's a bit silly). Thats's one more reason to set it directly. One more comment: since I can't see your code, I can't tell, but are you using the packet delay that corresponds to the relay ID?
Makes sense to me, you can't increment ID7 so for the moment the code doesn't respond to it.
With regards to timing, its on my list of things to address, I see you provided a formula:
The delay between the individual packets in the sequence is calculated as (41+ID)/16 in secs (ID is 0-based here).
So then if ID=0 its 2.5625sec between packets, ID=1 2.625 Sec between packets?
More reason to increment in ID as you can't have the ISS on a higher ID than the retransmitter or the packets will arrive after you need to send them!
I'ts going to be a problem with any delay as over time your going to get more data than you can send out....