This works perfect. I don't use the pkg_comp environment, but I was able
to get this working on my test box using the stable branch.
What do you do when the next stable branch comes out? Do you just change
the branch and check it out again and run through the pkg_chk &&
pkg_rolling-replace again?

You can do it via update. For instance, when pkgsrc-2009Q4 gets tagged
any day now, I will do a cvs update with the new tag just once, then the
nightly update will always update that tag.

# cvs -q update -r pkgsrc-2009Q4 -dP
This will mark all the directories in the tree with the new tag.

Also, what do you do when it comes to upgrading the base system? It
looks like that can be done from the CD, but I've never done that before.

Similarly, I update the base system from source on one system then do
binary upgrades to the others. Building the system from source is well
documented in the NetBSD Guide, and you can also just use the binary
snapshots from NetBSD.