Yep, it was just a quick hack. It should facilitate decoding of someDownlink frames, but not solve the problem at all.

I have been reading (and still reading) both GSM 05.02 and 05.03, and found some more important details:

228 coded bits of a TCH/H speech frame are mapped on 4 consecutive bursts,using the even numbered bits of the first 2 bursts and the odd numbered bitsof the last two bursts (see 3.2.3). So, every single burst carries 57 bitsof one coded speech frame, and 57 bits of another speech frame. This isalso called "diagonal interleaving".

456 coded bits of a FACCH/H frame are mapped on 6 consecutive bursts,by stealing even bits of the first 2 bursts (hu=1), all bits of the middle 2 bursts(both hu=1 and hl=1), and odd bits of the last 2 bursts (hl=1) (see 4.3.5).

Two full consecutive speech frames are stolen by a FACCH/H frame (see 4.3.5).