After playing around a little more with the scope (like you mentioned) you may be able to get the subtotal to work even better if you use an expression like this in the data field of the matrix. This will eliminate the need to modify anything in the subtotal or modifying the text box with an expression and the values should line up better.
The "matrix1_RowGroup1" is the default name of the highest level group in my matrix (the equilivant of your campus group), so this will need to change to your group name. You also may not need the final "matrix1_RowGroup1" before the final close parens, but I left it in there.
Let me know if it works for you, good luck,