Here's the simple problem. The Mafia roles at the moment are way too variable in power. For a simple example, let's compare these two results:
Godfather
Consort
Consigliere
Godfather
Kidnapper
Mafioso
The primary issue is that in #2, the Mafia can only kidnap people, and that only if there is no lynch during the day. If there is, then they are entirely powerless except to kill at night. Now, the Kidnapper is a pretty powerful role, but it also has a zero minimum of usefulness. Mafioso, if there is GF, is also zero, since he does nothing the GF can't do. In comparison to #1, where the Mafia can kill, roleblock, and invest every night, it's pretty clear that #2 is going to be very disadvantaged.
Since the Mafia almost always have GF and two support roles, having such a massive variation in minimum power for those roles is pretty bad. If you're Town and you typically have 8-9 roles, it's going to average out a lot better.
But on top of that, the Mafioso role is plain boring to play. It has no interesting attributes. It's just a Godfather, but crappier and the Godfather does it for you anyway. Nobody wants to play Mafioso when there is a Godfather. It only really serves a purpose in the case where Godfather has died or wasn't selected. And as a side effect, it also makes the Godfather role boring to play. All you can do is sit there whilst the Mafioso kills people and hope the Town doesn't figure out you can't be Citizen. And for Godfather-less setups, it would still quite suffice to treat it as if the Godfather had died day 1- assign a random Mafia player to be Mafioso.
The Godfather/Mafioso dynamic is boring and tired, and serves no useful purpose except to frustrate and massively hamper Mafia players who are stuck with it. It would be in the best interests of all players for it to be removed from the game entirely by only producing Mafiosos when there is no Godfather, or perhaps permitting both Godfather and Mafioso to kill each night (although that might be quite OP).