I am afraid this will be a very challenging (or even impossible) case. I see more than just gradient in your image, much more. There must be something in your equipment that caused this. The variation in background color has a size scale much smaller than the main target. This will bring any traditional algorithms hard times on separating the background structure from the main target. If I see such things in my image, I will immediately give up fixing it in post processing. Instead, I will try to figure out why it is like that in the first place, try to fix it, and then re-image the target.
ps, It's quite possible that the new MultiscaleGradientCorrection tool in PI can fix this. It is essentially using another good (or well corrected) image to replace the background in your image. If the main background feature is a smooth gradient, you can say that the tool removes gradient for you. If the main background feature is some bad imaging artifacts caused by your equipment (very probably like the case here), then it essentially replaces the bad part of your image with the good part from its database. Purists can call this cheating.