Bleeding is when rule A prevents rule B from applying. But counterbleeding is when two rules are ordered too late to bleed. I see counterbleeding the same as feeding.
Let's say you have some segment X. Rule A and B may only apply to X. A applies first and changes X->Y. Next, B applies to Y but it is in vacuous application, so nothing happens. In this scenario A is said to bleed B.
Now let's say we have rule A and B, but this time let's just say A applies to X or Y. Now, when we apply rule B first. Let's say B changes X->Y , and next A applies to Y. If A had applied first, then it would have bleeded B. This seems to be a feeding relationship.
Am I missing anything?