Can you easily select a tree that you want to search? I don't use Org, but I imagine there are commands to do that kind of thing: select specific subtrees etc.
If you use Isearch+ (code: isearch+.el) then you can limit isearch to within the active region - you need not narrow to the region.
That lets you continue to see the surrounding context. (You can ...
Is this for interactive use? I suppose so. As the doc string for replace-regexp says:
This function is for interactive use only; in Lisp code
use `re-search-forward' and `replace-match' instead.
Are you really asking about replace-regexp, and not query-replace-regexp?
Because if you use the latter then the answer is included in Isearch by default: ...