We have two different websites, www.humidordiscount.com and www.humidordiscount.co.uk showing pretty much the same content but with slight differences (currency, contact info, etc) one aiming for US/global market and the other for the UK. Canonical and hreflang tags on the index page are as follows. For humidordiscount.co.uk:
<link rel="alternate" hreflang="en-US" href="https://www.humidordiscount.com" />
<link rel="alternate" hreflang="en-GB" href="https://www.humidordiscount.co.uk" />
<link rel="canonical" href="https://www.humidordiscount.co.uk" />
Similarly for humidordiscount.com
<link rel="alternate" hreflang="en-US" href="https://www.humidordiscount.com" />
<link rel="alternate" hreflang="en-GB" href="https://www.humidordiscount.co.uk" />
<link rel="canonical" href="https://www.humidordiscount.com" />
The rest of the website pages follow the same canonial/hreflang policy.
However, google is not indexing humidordiscount.co.uk and caching humidordiscount.com instead. For example, if I google "humidordiscount.co.uk" the cached version of the first search result (https://webcache.googleusercontent.com/search?q=cache:zYAeGWTdt0cJ:https://www.humidordiscount.co.uk/+&cd=1&hl=en&ct=clnk&gl=es) result is showing humidordiscount.com content instead (with the message "This is Google's cache of https://www.humidordiscount.com). On the other side, exploring as google in the webmaster tools display the correct results. Also, each one of the sites have a correct, different sitemap submitted to google.
This is happening as well for other domains sharing the same language (i.e: humidordiscount.at searches displaying cached results of humidordiscount.de)
Does any of you know the reason why this may be happenning?