Why do post-Hartree-Fock methods fail to predict the direction of the dipole moment of carbon monoxide?
The question itself is void, as all methods with the exception of Hartree-Fock predict the direction of the dipole moment correctly. Deathbreath found a Full CI calculation in Jeremy P. Coe, Daniel J. Taylor, and Martin J. Paterson. J. Comp. Chem. 2013, 34 (13), 1083-1093 of which luckily an open version exists (arXiv:1301.4904 [physics.chem-ph]). The following passage is taken from the latter:


  The groundstate dipole moment of carbon monoxide, although fairly small, when calculated using HF strikingly has the incorrect sign compared with experimental results. Previous work has suggested that the accuracy of the dipole calculation
  depends on the amount of correlation accounted for.14  The bond length (2.1316 Bohr) and the experimental dipole value (0.122 Debye) are taken from Ref. 15. The positive value for the dipole here signifies a polarity of $\ce{C^−O^+}$.
  With a cc-pVDZ basis, two frozen core orbitals and a cut-off value of $c_\mathrm{min} = 5 \times 10^{−3}$, we see in Fig. 1 [omitted] that the MCCI method, starting from close to the incorrectly signed result of the HF single SD, quickly reaches a correctly signed value which converges at around half of the FCI value.
  
  
  
  14 G. E. Scuseria, M. D. Miller, F. Jensen, and J. Geertsen. J.
  Chem. Phys. 1991, 94, 6660.
  15 J. S. Muenter. J. Mol. Spectrosc. 1975, 55, 490.


The problem indeed is just a technical one, resulting from analysing the wrong density. Gaussian 09 by default only analyses the SCF density (see population, density). In order to obtain values for the post-HF methods, the density=current keyword needs to be specified. The updated table therefore becomes:
\begin{array}{lr}
\text{Method} &amp;
\mathbf{q}(\overrightarrow{\ce{CO}})/\mathrm{D}&amp;
\mathbf{d}(\ce{CO})/\mathrm{10^{-10}m}\\\hline
\text{Experimental}^{15} &amp; 0.122 &amp; 1.128\\\hline
\text{HF} &amp; -0.14 &amp; 1.102\\\hline
\text{MP2}  &amp;   0.26 &amp; 1.135\\
\text{MP3}  &amp;   0.08 &amp; 1.118\\
\text{MP4(SDQ)} &amp; 0.11 &amp; 1.118\\
\text{MP4(SDTQ)//MP4(SDQ)} &amp; \text{n.a.} \\
\text{CCSD} &amp;   0.08 &amp; 1.124\\
\text{CCSD(T)//CCSD} &amp; \text{n.a.}\\
\text{CISD} &amp; 0.05 &amp; 1.118\\
\text{QCISD} &amp; 0.08 &amp; 1.127\\
\hline
\text{BP86} &amp;    0.19 &amp; 1.135\\
\text{PBE0} &amp;    0.12 &amp; 1.122\\
\text{M11}  &amp;    0.06 &amp; 1.119\\
\text{B3LYP} &amp;   0.10 &amp; 1.124\\
\hline
\text{B2PLYP} &amp; 0.15 &amp; 1.129\\
\hline
\end{array}



Sample Input for Gaussian 09 for analysis
(requires the addition of %chk=mp2qzvpp.chk to the sample input of the question)


%oldchk=mp2qzvpp.chk
#p MP2/def2QZVPP
Geom=check
Guess=(Read,Only)
Density=(Check, Current)

dens-curr

0 1





I apologise for getting everyone worked up over a stupid beginner mistake.