Recently, I noticed that K2 wouldn't fetch menu item for items in a category that is not a direct parent of it. For example:
I have My Article which is in the category B, which is a a descendant of the root category A. I created a K2 Categories menu item which uses A as the category. If I viewed My Article by clicking a link from the website I wouldn't retrieve a Menu Item.
The reason it's happening
After digging into the K2's routing system, I noticed it doesn't allow for category ancestors routing. In our case, this means that even though My Article is in a category which is a descendant of A, you still wouldn't get a Menu Item for that, you must have created a specific menu item that uses B.
In simple words, the fix is to add support for category ancestors routing.
In technical words I have modified two core files of K2 in order to achieve this kind of routing behaviour, therefore if you use this fix you should be careful about it.
I have attached the two files with this message.