Any idea of what I could have done wrong, or does vistaprint just suck?
Basically you have made some general assumptions, and that is where you have gone wrong.
1. You have assumed what you see on screen is what your going to get. Your screen is RGB, and can produce a HUGE amount of colours not available to CMYK. Has your monitor been colour calibrated to the Vistprint ICC profiles? Unless it is, you cannot rely on your monitor.
2. You have assumed what your Canon Pixma can produce, is what Vistaprint can produce. Inkjet colours are generally more vivid then CMYK. Has your printed be colour calibrated to the Vistaprint ICC profiles? Unless it is you cannot rely on your inkjet.
Now I am not saying Vistaprint doesn't suck, they may well do, I have never used them, but they will be gang printing your job with many others at the same time. They will be running to set CMYK ink levels, and basically won't care about the individual colour of each job. They have no way of tuning the colour for your job, as they have no idea of what your seeing on your monitor, or printed out of your printer.
Pantone swatch books are available from Pantone. You can buy a 3-book set of the Color Bridge books which include PMS colors as well as their approximate CMYK equivalent for $300.
This is the only way to ensure your going to get back what you want.
Using a colour bridge essential to anyone doing design, and printing in CMYK. The Pantone spot books are good for spot PMS reproduction, if your actually printing the job as a spot colour job, but if your printing it CMYK, you MUST use a Colour Bridge. It doesn't matter what it looks like on your screen, or on your printer, if you use the known CMYK colour values, that is the best way of at least getting close to what you want. Even then it will probably be off by 5%.
Other things that can effect the final colour are:
1. The whiteness of the paper stock
2. The type of paper stock. (Coated / Uncoated / Matte / Satin)
3. Any additional coating you put over the top like varnishes or celloglaze.
4. The light source you view the colours in. Sit in a room with yellow, warm lights, then walk out into the sun, the colour changes. This is because CMYK relies on reflected light, not transmitted light.
Printing is not an exact science, and it is amazing that anything ever gets printed right, and at best, it is a good compromise from start to finish.