Nope, I understood that the columns were varchars, hence the StrToTimeSpan function. What I didn't get was that the totals would be summing of the various time units rather then the actual timespan.
If you wanted to do that I guess the best way would be to create calculated fields on the report dataset using Split.
E.g.
for the hours =Cint(Split(Fields!TimeSpan.Value,":").GetValue(0))
for the minutes =Cint(Split(Fields!TimeSpan.Value,":").GetValue(1))
etc
You can then summarize and aggregate those values.