I suspect that you replace your whole document innerHTML to change every instance of ®. This will result in the destruction of all HTML elements contained in your document and the creation of a set of totally new ones. That is the reason your event handlers get unhooked.
To do this without loosing your event handlers you would have to iterate over every element (or at least every element which could contain a ®) and only replace it's innerHTML if it contains an ®. But even this could kill some of your event handlers if the constellation is unfortunate.
Another solution could be to use another font for the ®. With webfonts it is possible to load fonts that only contain certain characters. That way you could replace the font used for the ® with a font that already displays it superscripted.