Image Overlay out of Sync with Timeline after Rendering
Too bad you have spent all this time on something that blender is not good at.
Here's the issue: the framerate reported is a non standard one (let me guess, the video file is a recording of some game or online video, or video from an android phone).
Some software recorders put out a variable framerate to make the file smaller and not to choke the computer for other apps.
But blender cannot deal with video files created like that correctly, as it needs each frame at the same timebase (framerate).
You would need to transcode the video into a stable framerate that matches that of your desired output so that blender can deal with it correctly.
It is not popular in this site when someone says that the VSE in blender is not a robust tool, but what you are experiencing is the result of that.
So you have two choices: conform your video to a single stable framerate, or use a different video app that can handle your file as is.