Here is my suggestion, I have based it on what I understand, basically the code is no more than 50 lines I did in a bit of ST for the shift (although on my Mitsi simulator could have done it in all ladder or FBD & it could have been smaller as it has word and bit shift that's easy to use.
Not going to post the code as it is only a test but here is what I consider a one lane to 6 take off conveyors, the operator decides where the pack is going to be diverted to and presses one of the six buttons, this loads the shift register with the lane number, when it reaches that lane the register at that position is compared with the lane number an diverts the pack down that lane, not bothered to delete the value in the shift register as it falls off the end of the shift eventually.
As I said this is only a test and is limited to 28 shifts on the screen for demonstration but the shift register is currently 1000 words.
Here is a screen shot taken during the running & a couple of diverts working shown by a lamp being green.