Проблема (как я уверен, вы узнали) состоит в том, что элементы текстового потока не являются экранными объектами и поэтому не реализуют нормальное поведение экранных объектов.
Что вам нужно сделать, это создать собственный InlineGraphicElement, который присоединяет нужные вам прослушиватели событий, а затем отправляет событие из экземпляра textFlow, чтобы его можно было прочитать где-то в иерархии экранных объектов (или любым другим выбранным вами методом нацелиться на это событие).
Хороший пример того, как добавить взаимодействие с мышью, можно увидеть, посмотрев на источник в LinkElement (см. Функцию createContentElement).
К сожалению, InlineGraphicElement помечен как окончательный, поэтому вам нужно будет дублировать его функциональность, а не расширять его. Просто убедитесь, что вы используете собственный графический элемент в вашем коде вместо обычного.
Удачи!
редактировать
На всякий случай, если точка была потеряна, идея в том, что вы можете захватить событие мыши где-нибудь в вашем приложении, подключив слушателя к textFlow, а затем программно создать и расположить подсказку над элементом, используя стандартные методы для поиска границы элемента текстового потока.