Old is for sure not the right term, it is from a different millennium! :)
The iptables code in ConnMan is known to be not 100% correct on how it creates the iptables. It seems to okay for modern kernels but that is just luck. One way around this problem could be to replace the ConnMan code which creates the iptables with calling iptables shell command.
Obviously there would be some forks involved but that would be the simplest solution in your situation I suppose. I wouldn't recommend to spend time figuring out what ConnMan is doing and what the kernel expects. I spend far too many hours myself on this topic. That's why I recommend to use the nftable implementation usally but that is probably not going to fly with 2.6.