When I run your simulation (run.sumocfg), I get 2341 loaded/unloaded persons in stop-output.
I used attributeStats.py -e stopinfo -a loadedPersons stops-out.xml -p 5
and this gives 622 stops with an average of 3.76367 loaded/unloaded
At the end time of 36000 there are still 28 persons in the simulation according to the log.
You can also check this by comparing the input count (9000 persons) to the tripinfo output count (8972 persons).
Looking at the simulation reveals that these persons are waiting at a busStop after all buses have already left. Some of them such as person 6064 have already used a bus by that time which creates a discrepancy between loadedPersons and ride count in tripinfo-output.
The pedestrian collisions are (among other things) caused by vehicles that drive on the sidewalks due to being configured with vClass="ignoring".
The pedestrian jamming (which could be caused by mis-dimensioned sidewalks/crossings) could be responsible for persons missing their buses.
regards,
Jakob