Wrong Frame Rate - Drift Late
Timed Text framerate is incorrect resulting in a sync drift where events become progressively later than their audio cues.
The subtitles are running at a slower framerate than the video. When the video is 23.976 fps, it is possible that the only thing needed would be a metadata only redelivery with the proper timing value set. There is a lot of confusion around the difference between timing using SMPTE24 timecode reference or MediaTime reference, so please be sure to determine what timing reference is used for the timed-text asset.
The following article outlines a method for confirming which timing reference your file is using:
If this is not just a SMPTE / MediaTime confusion, convert the framerate of the file to match the video's framerate. This can be achieved quite easily by using your subtitling tools built in timecode converter to go from one framerate to another with one click. For scenarios where this quick fix isn't perfect you can utilize the softwares "shrink/stretch" feature to adjust the timecode of the last event to a timecode that you manually specify.