Вы не можете, доступ к объектам WPF возможен только из потока, который их создал, поэтому по определению вы не можете выполнять на них фоновую обработку.
Но, как вы уже обнаружили, вы можете использовать методы сериализации, чтобы создать копию в другом потоке, и вы можете сериализовать результат обратно.
XamlWriter / XamlReader может сериализовать почти каждый объект WPF, но может работать медленно на больших графах объектов.
А для TextPointer возможно вы можете использовать GetOffsetToPosition / GetPositionAtOffset, чтобы воссоздать эквивалентный TextPointer обратно в основной поток.
Другим вариантом является использование freezables, объекты, наследуемые от Freezeable, могут использоваться из других потоков (после вызова метода Freeze), документы не замораживаются, а чертежи и геометрии - так что вы можете передавать фрагменты документа » между нитями как рисунки.