For a service fabric cluster, it is a must that the VMs be allocated across FDs and UDs, (we use an availability set for forcing such an allocation). This topology is then used to elect voter nodes, place system service replicas and also customers service instances/service replicas. When you specify Overprovision = true, basically azure provisions more VMs than what you ask for and then randomly removes extra ones (once the requested number is reached). This results in uneven distribution of VMs and hence possibly a very badly configured cluster.
The reason why you see these deleted unnecessary VMs appear as bad nodes, is because these nodes originally did join the cluster and then were deleted (so the service fabric still thinks that they will eventually come back), we certainly can do an upgrade to fix that issue, but you cannot fix the uneven distribution of nodes.
So - Always set the Overprovision=False in your VMSS deployments.