Unfortunately color calibration is a bit of a complicated field. For best results, you will want to use a color calibration device such as a Spyder or Colormunki. These devices are somewhat pricy, but a very necessary step for getting solid color accuracy.
Software that comes with the color calibration units will display various colors on your display and measure what color is actually displayed. It then creates what is known as an ICC profile for your display which tells the computer what colors it should actually display so that the right color comes up on the screen. Unfortunately, however, this is limited to the natural limits of your screen and laptops have a major caveat in that they normally can't have their color temperature itself adjusted, which can sometimes drastically limit the range of colors that they can produce. While I don't believe it applies in your case, many laptops use TN panel LCD screens which also alter color substantially based on the angle of view.
Additionally, computers and printers have potentially very different color gamuts (or the range of colors that they can produce). It may be that your screen is incapable of displaying the color of the photos correctly but the printer is. There are some tricks you can do to alter the image such that it will perceptually match the screen display as close as possible when printing, but this involves also needing to have the ICC profiles for the printer that will be used for the print and is a bit complicated to get right.
When doing a calibration, it is important to reproduce an ideal viewing environment as closely as possible. Lights should be quite dim to avoid outside light and allow for strong contrast. The screen should have been on for a period of at-least 10 minutes for any warm up to occur. Generally it is helpful to turn off any dynamic contrast features of the monitor if possible. I don't know about the colormunki, but the nicer Spyder units actually have a light level sensor that will take ambient light in to account when performing the calibration.
Note that you will also need to select a color temperature for the calibration. If you are unsure what color temp you want to use for your editing pipeline, the calibration software can likely suggest one based on the characteristics of your monitor and what it most naturally lends itself towards, but you will also want to consider your final output the most closely as decisions made now will impact the final output.
Also, be sure to keep in mind realistic expectations for it. To get a good, color accurate monitor is expensive. Even a fairly basic color accurate monitor costs around $600-$800, so the built in monitor on a MacBookPro, which is designed primarily for size, weight and power consumption, isn't going to really be all that super in terms of high accuracy color reproduction. You can get it close, but there will probably still be noticeable differences from your prints, even with proper calibration. It will just be much closer.
One final parting thought, it is worth noting that if your printers are using a pigment based process, reds are often weaker on pigment printers than ink based printers or c-type printers, so that may also be part of the cause of the green shifting. It's a less likely possibility, especially after going through 4 printers, but something worth checking in to.