I don't know if this will help you but it may give you something to think about and possibly point you in a suitable direction as it sounds as if your printer settings are out of sync with the data sent by the screen.
Years ago I bought a Plustek scanner which came complete with a Micrografx Picture Publisher program. With this program you could change a printer's settings so that the print output was the same as the screen image ( or as near as possible!)
You did this by making a basic coloured print and then, via the program, altered the screen image to so that it resembled the printed image you had just made, i.e. if the print image was too greenish you made the screen image a similar greenish colour. When the images were similar, the data from the screen was reversed by the program (+5% green became -5% green) and OK'd into the printer and subsequent prints matched the screen output. The program also offered fixed settings for comparable printers, i.e. Generic Deskjet, Inkjet, Bubblejet and Paintjet, etc.
I now use a FREE Micrografx Picture Publisher program but it no longer contains the manual facility for changing the printer settings. It does, however, still give the fixed settings for the various types of printers (including a "NONE" setting) which do show a variation in brightness and contrast which can make a considerable difference to a printed image.
My HP Deskjet is set as a Generic Bubblejet at the moment and any printed image corresponds to the screen quite well.
In the past I have looked for a similar, separate program which would allow you to re-adjust a printer's colour settings, but no luck so far.
I hope the above might help in some way.