You're right - the totals failed because the rates changed. As for why, a pivot table doesn't do a sum of rows, but instead reevaluates your expression for the total rows. When it finds multiple rates that apply, it simply nulls out the field, which is almost never what you want. You can use your expression to explicitly tell QlikView to do a sum of rows, but the syntax is annoying and will probably be difficult to remember the first few times you have to use it:
sum(aggr(your expression, your dimensions))
So for your example:
For example expressions, there's the help inside of QlikView itself, and the forum is swimming with them. Finding the RIGHT example in either place is, of course, a challenge.