In addition to Kyle's suggestion, you may find Helm useful, as commands like helm-org-in-buffer-headings have an "Open in indirect buffer" action, which makes it easy to open subtrees in indirect buffers. helm-org-rifle can also do this.
If there are certain subtrees you often work with together, you could write a function to open certain entries by UUID in indirect buffers, then arrange the buffers into frames/windows accordingly.