bearing in mind I am very new to Wptools, so there might be another way to do it or a cleaner way to do it. but
2.a
I would attempt a merge
Document.MergeText('', true);
Document.ReformatAll;
and set a flag in the OnMailMergeGetText event to determine if I went through that event (ie there are merge fields)
For b and c, I would use the field names when I create the merge field in the document template to specify what I need and use the again the same event (OnMailMergeGetText) to build a list of all the fields
Hope I am not sending you on a wrong path
Didier