I think Waspq found the reason for the bug. It is less a turn order bug than a five card bug!
According to the rules, the turn order is
*) the dice are rolled
*) the results of the event die (symbols) are resolved, i.e., the barbarian ship moves or progress cards are drawn
*) the red and yellow number dice are resolved, i.e. ressources/commodities are produced or 7-events trigger
*) the player on turn can trade/build/perform knight actions/play progress cards in any order
Thus first thing that happens in a turn is the barbarian ship moving or progress cards being distributed (depending on the event die). In this phase it is *not* allowed to play progress cards even if you have 5! If it is not your turn you have to immediately discard a card, though. But if it is your turn you just keep the 5 cards.
Only after the progress cards are distributed the effect of the 7 is resolved (discarding hand cards if over the 7 limit, moving the robber,...).
If I remember correctly I was always forced to discard or play a progress card immediately when I got 5 cards and it was my turn. This is an incorrect implementation and the reason for the bug described by Krazmov.
Instead of forcing you to play a card BGA should prohibit you to play it until all dice results are resolved. Only after you have ended your move there should be the check whether you have 5+ progress cards.