What is the correct MPEG-2 FourCC?
Strictly speaking, fourcc is the codec ID used by Microsoft. It has been adapted for use with many other formats, thus making it seem like a standardized ID format, but it's not.

ffmpeg, in particular, seems to only consider XDCAM standard MPEG2 for inclusion in MOV.

From the source code:

else if (track-&gt;enc-&gt;codec_id == AV_CODEC_ID_MPEG2VIDEO)
    tag = mov_get_mpeg2_xdcam_codec_tag(s, track);


where if the xdcam tag function doesn't find a matching XDCAM stream, it runs

if (!tag)
    tag = MKTAG('m', '2', 'v', '1'); //fallback tag


which ffmpeg, interestingly, thinks is tha tag that should be used for recording MPEG-2 in a MOV by a camera.

{ AV_CODEC_ID_MPEG2VIDEO, MKTAG('m', '2', 'v', '1') }, /* Apple MPEG-2 Camcorder */ 


and mp2v is signalled as required for (an old version of) Final Cut Pro.

{ AV_CODEC_ID_MPEG2VIDEO, MKTAG('m', 'p', '2', 'v') }, /* FCP5 */


mpgv is not on that (ISO media) list that the MOV muxer can be forced to work with, but it is on the RIFF list (for AVIs) where it's only declared for MPEG-2, not MPEG-1

{ AV_CODEC_ID_MPEG2VIDEO, MKTAG('m', 'p', 'g', 'v') }




All the tag variants exist because each vendor or program decides to mark their streams a certain way and there's no single body policing their use. Stick with mp2v since that works for you.

Update: I just realized that any stream can be tagged with any tag if -strict -1 or -2 is applied. I was able to tag an AVC stream in a MOV with mpgv :)