Looking at your qdisc configs, my first guess is that the queue size of netem is not large enough to accommodate packets of all the flows. Since netem does not have any fair queueing semantics, you may get unproportional losses from experiment to experiment for the 5 flows. Could you please try "limit 1024" or higher for your netem?
I mean:
tc qd replace dev ens4 root netem limit 1024 delay 5.0ms rate 100Mbit
tc qd replace dev eth0 root netem limit 1024 delay 5.0ms rate 100Mbit
Also, another common issue is that netperf's control channel for the late-coming flows can get starved. If that happens, the data channel may start sending data a long time later than the intended start time. Could you please try the "-s" instead?
Here is a script I usually use, to fire 5 netperf processes at 0s, 2s, ... to 8s:
for i in 0 2 4 6 8; do netperf -l $(expr 50 - $i) -H [server] -s $i -- -K bbr -P [port] & done
Please let me know whether the above resolve your issue.