How rep is dealt with IIRC: There is a separate MySQL table with the fields:
-user received ID
-user given ID
When an account is deleted or banned their row in with info in the user MySQL table stays, it is just in a different usergroup. So it wouldn't screw with it.
My theory is: I think that vB has a field in the USER table or somewhere else where it stores the rep total, so that it doesn't constantly have to be calculated. I think there is something wrong with that field. If those fields are recalculated then it should be fine.