There are some mistakes you are doing that can cause various issues. For starters, you are using directshowsource. Since it is not frame accurate, its usage is discouraged (it can cause weird motion and audio de-sync). You should load mp4s with
ffvideosource instead. Loading audio in avisynth is a bad idea too, and my guess is that your recording has aac audio, so my suggestion would be to leave the audio alone and remux it with the compressed video into an mkv or mp4, depending on what you want to do. If you however need to do an avi final encode and the avi isn't just a lossless mid-step, then you should look into using ffmpeg or eac3to to convert it. I don't know of any public builds of ffmpeg for win32 (which I'm assuming is the OS you're on), so
eac3to is certainly an easier solution ─ there's a
gui if you don't like command lines, too. Third thing you're doing wrong is the aspect ratio: 1680x1050 is a 16:10 aspect ratio, whereas 1920x1080 is 16:9. Upscaling is a bad idea imho, but if you REALLY need to upscale for whatever reason, then upscale to 1920x1200. Also, instead of bilinearresize, I'd suggest using spline36resize. EnsureVBRMP3Sync seems useless too in the script since I find it hard to believe that your audio is mp3 in there (it just seems more likely for it to have been recorded as aac or perhaps pcm, but I can very well be wrong since I don't know what software and settings you used for your recording) and it only serves its purpose when you have to trim within avisynth.
As for virtualdub, you are most likely overlooking the codec settings to use ─ if you want to do mp3 audio, then I'd say either convert the audio to wav with eac3to and compress it with lame mp3 in vdub or compress it to mp3 directly with eac3to and just have vdub mux it. For the video, you'll have to set it to fast recompress and choose xvid or divx or a similar lossy codec and set it properly (by default it uses no codec, and uncompressed video weights a LOT, as you've noticed).