Question first, when printing how are you handling color management? Are you letting the printer handle color management or photoshop/lightroom handle color management? I do not know how the print software setup works on the Canon printers but for my Epsons there is an option to change which color management you use. Changing this option to photoshop handling the color management solved the issue of prints not matching the monitor.
As for the generic inks, I totally ruined an Epson Printer trying to use cheaper inks. Plus the inks didn't dry as fast. Very messy. However that was many years ago, I am sure things have improved by now(hopefully).