DNS status is assigned only if driver is present in qual log but not present in race log. If driver didn`t show-up for event at all (including qual) he gets "-". Thats how it was from the beginning in log analyzer, since its how we used it in our league. I can try to experiment with giving DNS instead of "-" also, but I`m not sure if this break something, needs testing.
That table looks like a bug. But I can not reproduce it with logs that I have. Maybe thats because you changed positions in your xmls in this championship? I can imagine that can break some things, since I never really supported manual changing of position values in xml tags. You can send me this 6 log files and I can do more research.
Only the last driver name gets recorded in xml by rF2 if swap was done, if I remember correctly. In r2la drivers name is his unique identifier, so I can only support that one name for now. I guess what I`m saying is: there is no advanced support for driver swaps for championship manager. Its more complicated by the fact that the same drivers can drive different car-teams at different races during the championship. One more thing - I have no real life logs from several races with driver swaps to experiment with. If you have them, you can send me them also, for science

Maybe I can improve this.