I'm just entering this realm. This year I started to make two leagues (19 teams then, it'll be 20 when NHL 25 comes out) that I watch here in Britain. They're the third and fourth tiers of ice hockey here. I know several players around the league, and so they themselves download it and play as themselves against their actual opponents.
I didn't get to finishing them all last year, but if you search "NIHL" you'll be able to find it.
My configuration for them, as you do, is mainly stats-based. A player has a lot of assists? I'll put them as a playmaker. A player has more than 100 PIMs? I'll put them as a grinder/enforcer. My issue normally comes with the fact not all players have photos, and information can actually be quite hard to come by, even with EliteProspects.
My teams are as stupidly accurate as I can get them. Picky down to the seat colours and the stripes of the jersey. However, while I will try and cater to facial hair or unique hair, or a goalie's pads, I don't focus too much on my players because it would take far too long. A roster of about 25 across 20 teams is 500 players... no thanks. I don't have the time or patience to deal with EA's exorbitantly slow and long winded way of doing things. I'm a sucker for just holding the right arrow on the OVR page and having done.