Well, I couldn’t figure out what was causing the problem, so I used a hell of a time consuming workaround. First I exported every shot that had the problem into a TIFF sequence, then I imported the TIFF sequences back into a nested sequence. The resulting TIFF images had a noticeable color offset compared to the original material, so I had to use masks and track mattes to replace every highlight in the shot. This included lots of keyframing to move the masks over the highlights. The result is a good H.264 video that looks exactly like the preview on my program monitor.
I would still like to find quicker solution to the problem, because I don’t want to do this manual patch up every time this problem occurs in the future.