How are you viewing it? My guess is the conversion back to RGB to view is screwing it up. Otherwise it looks fine. Easy test? Add this to the end and view it again.
ConvertToRGB32(chromaresample="point", matrix="PC.601")
Edit: To give more information, there are a few ways on how the sample is converted back to RGB. If it's done wrong, you get what you saw, which is bleeding. If it's done right, then the problem wouldn't show. The problem is, since there is nothing standard in the stream to indicate which way to convert, things like this sometimes happen. More information here:
http://www.mir.com/DMG/chroma.html under "Three Varieties of 4:2:0".
Edit 2: If you want to match what I would guess your computer is doing to convert back to RGB (MPEG 1 placement), I would use this line in your script instead:
ConvertToYV12(chromaresample="point", matrix="PC.601", ChromaOutPlacement="MPEG1")
More info here:
http://avisynth.nl/index.php/ConvertToYV12