05AB1E, 20 18 16 14 bytes
S¢Z≠sË*sZ¢≠SË* The program is essentially divided into 2 parts where the goal of the first part is to do the actual task and the goal of the second part is to use the same functions as the first part without altering the result.
Explanation (first part)
S # push input split into list of chars ¢ # count the occurrence of each char in input Z≠ # check that the max count is not 1 sË # check if all counts are equal * # multiply Explanation (second part)
s # swap input to top of stack Z¢ # count the number of occurrences of the largest element ≠ # check that the count isn't 1 SË # split into list and check that each element are equal (always true) * # multiply (as thisit is alwayswith 1, the original result is left unchanged)