Betsy,
I'm usually a little slow and without pictures or a live example it's had for me to just look at code and know what's going on. But here's my comments / thoughts...
This is likely due to the tab control. If you're using the built in tab control keep in mind that only the currently displayed tab is rendered to the browser. The other tabs basically don't exist and I'm pretty sure aren't even in the JSF component tree. So each tab change requires a trip to the server. I don't like this. If you want to use the tab control I'd take a hard look at the Dojo version as then everything exists on the page it's just hidden appropriately via CSJS.
But you can probably make it work they way you want today. I would suggest not basing the rendering on direct access to the components. I know I've never personally created a variable for a component yet like you do:
var edit:javax.faces.component.UIComponent = getComponent("note");
Of course this doesn't make me right. It's just something I've never needed to do.
More often then not I control rendering via a scoped Variable. So my suggesting is in your onChange event set a viewScope variable - true or false to what you want to do.
viewScope.put("vsShortTerm". true); or false depending on your needs
Then in the rendered event of the radio button do:
viewScope.get("vsShortTerm");
That should be all you need really then I'd think. If the control gets removed from the tree because you changed tabs no biggie.. but when it comes back it should read in the scoped variable and render accordingly.
Hope that helps!!
Good Luck!
Dave