I was approaching the problem from the wrong angle, on my example above the first if statement returned TRUE on certain criteria. On the second if statement the middle part (the first else if) returned TRUE on certain criteria.
I could not work out while the 3rd if statement was not working as expect but it was because the first and second parts both were returning TRUE.
Approaching the problem (in my larger code set) without using the if statements (and else parts) but using a different methodology has resolved the issue.
Thank you Randy and Colin for your help
solved How do I return a true when checking against 4 values in Javascript?