It's a cosmetic limit. Most characters only have 10 slots due to the way their files are numbered. For instance, Mario's first Battle Portrait is numbered 001, then his next is 002, etc. Looking at Donkey Kong, his BPs begin at 011, which means that if you gave Mario an 11th costume, it would overlap with DK's cosmetics. Theoretically, it'll be functional, but you'd have DK's face on the bottom where the damage percents are instead of Mario's, which not only looks bad but could get confusing.
Likewise, Link's numbering starts at 021, so if you tried to give DK more than 10, you'd have the same issue as the one I described above.
Most characters follow this pattern, but the cosmetic slot after Wario's is empty, so his last two costumes don't overlap with another character like would happen with most others.