At this point, i would just try changing the framerate. If it's 30 fps, make it 29.97 or 24 fps make it 23.976.
Not saying it will fix it i am just saying i would try this to see if it improves at all...
If you don't know how to do that, you could also just try to remove the duplicate frames if the fps is 30 or 24.
With ffmpeg, the following command will remove the duped frames and keep the audio in sync but that is on a file that is already in sync... dunno what it will do on that...
ffmpeg -i "Your source File.mp4" -vf mpdecimate -fps_mode vfr -acodec copy "Your output File.mp4"