One possible problem might be caused by the "=" signs in the middle of both expressions, I think this might be a wrong syntax.
Another possible problem is the use of the fields like Response_Level outside of the aggregation functions - if by any chance one of those fields may have multiple available values per User_Profile_ID_SourceDB, you are likely to get null() values.
What I usually do in those cases is convert the chart to a Straight Table and examine my expressions there.
Yes this is the frustrating thing - I created two tables to make sure the results I was getting would work before I tried to create the chart. Both tables create the results I would like to plot of the chart - see below!
You second point might be the issue each of the response levels have either 4 or 5 values per User Profile - however the expression is returning the Max value so reducing it to one result per User Profile.
notice that the first table only returns results in the individual rows, but not at the total level. Try removing Response_Level_1 from the list of dimensions and see if you are still getting results.Same with the second table - it looks like you replaced "Expression total" with "Sum of Rows" and therefore you are getting such a high % as a result. Try removing Response_Level_4 from the list of dimensions and see what results you are getting.
Generally speaking, I'd try to find a way to simplify your calculations and to reduce the use of conditions, either using pre-calculated flags or by re-engineering the whole calculation in a different way. It's hard to give you more specific directions without spending the time to understand your business problem and your requirements...