@dalias Which desirable properties? Do you want all percentages to be rounded with same precision? (Is it just as bad to round 0.5% to 0% as it is to round 50.5% to 50%?)
If the answer to the latter is no, then I posit that you want to minimize Kullback-Leibler divergence (i.e. "how many more bits we'd need to use to encode a value chosen from the actual distribution if we incorrectly believed it came from the rounded distribution"). This implies that your absolute precision should shrink as 1/sqrt(value) (so, your relative precision should grow as sqrt(value)).
After this choice is made the actual problem is something I'd want to know a nice answer to. When I was solving the ~same problem, I ended up with annoying heuristics that pick one entry (one with the largest value) as the one that will just be "100% minus all the others".