From a code review, without really having "reproduced" this as an error, a confirmation APDU could result in a random lowPrioQueue entry to be confirmed, if the confirmation is about a highPrioQueue entry.
In ClientConnection.cs:sendNextHighPriorityASDU()
, it should read:
sentASDUs[currentIndex].queueIndex = -1;