It's also worth noting this:
If you have more than one interface in a subnet, then BOTH of those interfaces have to be downstream interfaces in igmpproxy for it to not say "Membership report was recieved on a disabled interface. Ignoring." and "The found if for XXX.XXX.XXX.XXX was not downstream. Ignoring leave request." I don't know if that is intentional but it seems to only check the first match, not all matches. Interesting behaviour worth knowing about anyway. In my case I had a dedicated management interface on the same subnet as my LAN, I just moved this to its own subnet and that cured that issue.
Still solved. I just want to give as much detail as possible for anyone else.
If you have more than one interface in a subnet, then BOTH of those interfaces have to be downstream interfaces in igmpproxy for it to not say "Membership report was recieved on a disabled interface. Ignoring." and "The found if for XXX.XXX.XXX.XXX was not downstream. Ignoring leave request." I don't know if that is intentional but it seems to only check the first match, not all matches. Interesting behaviour worth knowing about anyway. In my case I had a dedicated management interface on the same subnet as my LAN, I just moved this to its own subnet and that cured that issue.
Still solved. I just want to give as much detail as possible for anyone else.