The solution you propose is not going to work. Hreflang is used to identify different language versions of the same page (with minor variations). This implies that each page has a one to one relation with it's equivalent in the other languages.
This isn't the case on your site - the category pages on your US site do not correspond with the category pages on the en-gb site - you can't use the hreflang here (1 page US = 3 pages in en-gb).
You could do this on homepage, product pages and all pages that are more or less equivalent in all languages.
Please also note that hreflang is reciprocal - if you have following hreflang's
you have to put this code on both pages - on http://www.brandname.com/en-gb/product-a & https://www.BRANDNAMEUSA.com/product-a - it's no use to only put it on the en-gb version as you currently do.
I also have doubts about "es-mx" for a site which is in entirely in English.
Dirk