It works like this: Peeps come in groups of 1-6 that never split up. They're all-or-nothing. They will spread out between rows of seats and cars on the same ride or train, but will not split between separate runs of the same flat ride or separate trains of the same coaster. Note that some rides (like antique cars) only have 4 seats in total, so groups of 5-6 can't ride these at all.
Anyway, when peeps board a ride, they do so starting at Seat #1 and going to the last seat. Because groups don't split up , there has to be enough seats available for everybody in the group. So if, when you get to the last few seats, the next group of peeps in the queue is larger than the remaining number of seats, the group will not board. And because peep groups can't pass each other in the queue, smaller peep groups that would fit the remaining seats can't get in, so the ride runs with 1-5 empty seats, This doesn't happen every time, however, so on average figure about 2-3 empty seats.
This is a loss of about 10% throughput for the high-capacity flat rides (mostly seating 32) and big coasters (mostly seating 28-30). Not really a big deal. Where this hurts is the smaller coasters with only 8 seats per vehicle. The average loss of throughput on these rides is about 25%, which is signifcant, and explains why they're never as profitable as you expect.
So yeah, something should be done here. I suggest simply letting smaller groups that can fit the remaining seats squeeze by the bigger groups that won't fit. No need to further complicate building queues for small groups, no need to rework group dynamics to allow them to split up. Just allow passing in the main queue.