I’m thinking that you know more about video than I do 🙂
When using D9 as the source of the sync, did you remove the special VES initialization code [tt:3ixtgg1s]initOverlay()[/tt:3ixtgg1s] from your program?
The sync signals generated from the TVout library are not perfectly timed (by admission of the TVout author), so some output devices have a hard time syncing with it. I have a small TV that loses sync with the VES after a few seconds.