How should I repair drywall where heating registers used to be?
Personally, I would just build a rectangle out of 2x4s slightly smaller than the hole, lower it into the hole flush with the existing framing, then screw it to the existing framing.  That will give you a nice surface to attach your new drywall to.  Depending on the size of the hole, you might want a cross member in the box as well so your drywall isn't spanning too big of a hole unsupported. 

As for cutting back the existing drywall - I wouldn't bother with that for a couple reasons:

First, you're likely to run into issues with the nails or screws that were used to originally attach the drywall to that framing.  If you cut around those, then the old drywall isn't going to have a very secure connection to the framing unless it was glued.  And if it was glued, then you have the problem of the glue residue getting in the way of the new piece you want to put on.

Second, the damaged areas of the drywall are well within the areas that you'll need to mud over anyways - figure on mudding out at least 6-12 inches on either side of the joint. So you're really not saving yourself any work by cleaning that up.