Great topic!
So for the math it's basically probability of A & B happening together (aka. everything goes right) is calculated by multiplying the probabilities of each together. So P(A&B) = P(A) * P(B).
So if you want good fruit & good villagers & good color theme & etc., you just multiply the probabilities of each together. Simple as that! And that gives you the probability that you won't need to reset. Then (1 - answer) = the probability that you will need to reset.
If you want specific villager(s), you just adjust accordingly. For example, if I desperately want Phoebe & Roald together, (1/total uchis) * (1/total jocks) is the chance to get them together. If I just want Muffy really bad and I don't care what jock I get as long as I get her, then it's just (1/total uchis). And then you multiply it with the probabilities of everything else you want.
One thing though, I don't understand your total uchis and jocks? By my count, there are 24 known uchis and 54 confirmed jocks with 2 more that are likely to be in the game, for total of 56. I don't think Sanrio cards work with the game.
Hmm unless I'm misunderstanding you I don't think that works. (1 - P(bad jock villager)*P(bad uchi villager)) gives you the probability that you won't have two terrible villagers together. Yet people will still reset if they have 1 terrible villager they hate and 1 good one (e.g. bad jock + good uchi).