I've tried it in a metal enclosure, and through different power supplies, including battery and isolated psu, no change. Different amps, cables, no change. Also tried swapping the 4558 for a TL702, no change. It's a head-scratcher.
I did use an audio probe to identify where the squeal started. Could IC1 be amplifying an existing signal to create the squeal?
I think my next step will be to do a bunch of continuity testing to see if parts of the circuit are crossing over to where they shouldn't be.