I think your slice might be off by one bit. 'high is an index, not a width, so 'high - reg_sum_low'high may give a wrong range.
Try using reg_sum_low'length - 1 to make sure the slice has the correct width — that usually fixes the sign-extension issue you described.