Hi Andy,
Thank you for your interest in Syncfusion products.
TextRange:
TextRange is a collection of text, in other words it is the paragraph or the range text.
TextRangeHolder:
TextRangeHolder is a collection of TextRanges. The FindAll returns TextRangeHolder the collection of all text range that has the phrase that is given for replacement.
As per the code snippet provided by you, the number of instances of "phrase" depends on the occurrences of the phrase within a paragraph.(i.e., a paragraph might contain more than one instance of "phrase" which is considered a single occurrence. But, replacing is done to all the occurrences).
Here is the sample program for your reference.
http://websamples.syncfusion.com/samples/DocIO.Windows/F_61563/main.htmHere is the generated document for your reference.
http://www.syncfusion.com/Support/user/uploads/FindAll_b7a8700d.zipPlease let me know if you face any issues.
Regards,
Sarath