He's related both ways -- he's my gr-gr-grandfather's brother. Then he married my gr-gr-grandfather's wife later in life when they were both widowed.
I've had a look at the code and it sets the spouse relationship once, so at present its kind of random which family he is seen as part of first. In this case he is likely to have been seen as married to your direct ancestor. This then gave him the setting "Married to Direct/Blood" at present that then means he can't improve on that.
I've implemented a fix whereby if setting a relation type would make it a closer relation it does this rather than ignoring it this should fix your issue.