There are a couple of things you can do, now that you've thoroughly checked your system for instrument flaws. (Caution, when trying to pin down something like this, you can sometimes fail to be thorough, and miss steps you've thought you've done well. Anything you've already done, may be suspect, because you've done so much. That's just a warning for you, not a nitpick.)
Determine at what % eluent mix you product comes out, and run isocratically. Now, you may get a poorer separation, at it may take a longer runtime. But I'm not suggesting that you always run isocratically. We're just taking the gardiet mixer out of the equation, so to speak. So we can what sort of drift there is, run to run. You may be inadequetly re-equilibrating your runs, 'tho that does seem unlikely to me, as you're not using an ion pair reagent.
You can do a couple of things to test your systems ability to make a gradient. You can just put two 100 ml graduated cylinders of eluent in place of the reservoir, and run them 50/50. They should both drain at the same rate. Another trick is to run, with or without a column, two bottles of degassed methanol, one of which is spiked with 0.1% acetone A UV detector will show you the gradient as it forms, and you can check it for intermittent failures. (or 0.01% acetone, as it absorbs quite strongly at short wavelengths).