Refactor the data model around documents, text flows, text flow targets (and connected entities) into one which allows certain performance improvements as well as better history tracking.
The idea is to have history tracking in the same tables using columns to indicate the validity period of a given record. Each time the record changes (some changes may not merit this treatment) a new record would be inserted into the table and the validity period for both records would be altered accordingly. Introduction of business keys is important here: A way to identify entities (document, text flow, etc) throughout their histories is necessary here. These keys would not replace the numeric auto-generated keys, but would rather complement them.
The combination of these new columns in the attached model would allow for the tracking of history for all the affected entities.