I agree it would be nice to be able to use the group name in the switch; unfortunately the Group object doesn't have a Name property (and neither does its base class Capture) so the best you'll be able to do is the following:
string ReplaceMatch(Match m)
{
if (m.Groups["BytesCompleted"].Success) ...
else if (m.Groups["BytesRemaining"].Success) ...
...
}