Well, my guess is that you are always getting 100% is becuase you are simply dividing the whole by the whole. For example, if your total is 200, then your expression yields 200/200, becuase you haven't actually dimensionalized the expression.
I don't have any data to really work with on this, but you might want to try the AGGR() function to see if you can get the numerator to calculate by the dimension, and then the denominator will remain the same. Another way to try this is by creating a column in a straight table for each expression and then using a column reference formula. I find that if I break an expression out into it's pieces in a table, I can see how the expressions are executing against my expectation, and that will lead me to inspiration on a solution.