This only seems to happen on scout and I think it is because both slots are coded as "scout" so the game will kick the scout that actually was in the server when the sub for the other scout connects. This doesn't seem to happen on soldier because the slots are "soldier_roamer" and "soldier_pocket".
In 6's, since there are typically two scouts on each team, when a scout leaves and gets reported it sometimes incorrectly reports the other scout because they are both labeled as red scout or blue scout. You need to make slots for scout similar to that of the roamer and pocket and just label them scout 1 and scout 2, so that when you report you can say !report red scout1 or !report red scout2
Not reporting and kicking the only scout there for a sub scout when in fact everyone is reporting the scout that didnt show up.