I have a possible fix for you…..I’ve used this on a few bikes now, on Shimano mostly, and it works. For Shimano it never seems to be a long term fix (caliper leaks? other contamination?) but it gets the pads and disc clean and can be repeated again as needed. Plus its simple and cheap to do.
Buy some of this:
Pink Stuff
(I’ve also seen it for sale in the £ shops.)
Clean the brakes and disc in situ, ordinary washing will do to get them visually clean. Then take a fingertip and scoop up a teaspoonful or so of Pink Stuff. Smear it over both sides of the disc, on the pad contact area. You’ll probably need a couple of teaspoonfuls on each side. You want a thin layer to coat both sides.
Then smear a little bit more on the pads. You could drop the wheel out for this if the pads are fairly new.
Wheel back in, go for a short ride, braking exactly as if you are bedding in new pads. The feel from the brakes will be pretty odd initially, but you’ll notice how quiet they get after the first couple of braking periods.
When this is done, rinse everything off with cold water, and give the discs a wipe down with a clean rag to remove any final residue. Then repeat the bedding in process immediately.
I think this works because the Pink stuff is both a fine cutting compound and degreaser, and removes a layer of contaminants from disc and pad. It also seems to remove the deposited pad material on the disc, hence why they need bedded in again.
Anyway. It might not work for you, but it seems to work on the bikes I’ve used it on. And as said, its cheap and simple to do.