When group-by selects a sequence of several items, then each value in the sequence is considered to form a grouping key in its own right, and the relevant node ends up in more than one group. The use case for this is grouping books by author - if a book has several authors, it goes in each of the author groups.
To group on a composite key, you have a choice. You can form the grouping key as a concatenation: group-by="concat(Company, '|', Location)". Or you can use two nested groupings:
<xsl:for-each-group ... group-by="Company">
<xsl:for-each-group ... group-by="Location">
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference