I feel like intersect should get you most of the way there, if I'm picturing this correctly. If your buffers overlap, intersect will create multiple overlapping intersection polygons tied to their respective pollution source, which should be fine, although I don't know how you want to consider areas that are polluted twice or more.
I think you will eventually have to calculate the area percent of each buffer size, so you can multiply that by the average income (e.g. 90% high income + 10% low income should be weighted toward high income).