Nice one! I "cheated" and declared (but never instantiated) several RichtextBoxes just to hold the rich-text for several different 'high level types' (data for All-Time, data for filtered by Date-Span and other 'user types'). Then, depending on the "view" I wanted, I simply copy the appropriate (pre-filtered on rtf-file-load and parse) richextbox..rtf to the one and only visible and instantiated richtextbox.
I know it's NOT EXACTLY what you were doing, but it's prettry similar in nature.
NIce one with the stream though!