it is explained in detail in this thread:
https://www.mobileread.com/forums/sho...ate+dictionary
It's the metadata: there is a dictionary related metadataset (i.e. portuguese-english dictionary) and a normal langauge metadataset (written in english or any other language for that matter)
mobipatch is good for changing the first metadataset...
You probably have problems with the second one.
(kindle chooses the dictionary according to this metadata- if the language is neutral, or the kindle doesn't find a dictionary in this language- it switches to the primary)
you can use the mobi2mobi perl script to change this metadata- (you can look at this metadata with mobipocketreader or mobihandler but not change it)
If you purchased the book from amazon and the metadata doesn't work you probably won't be able to change it because it's encrypted (but I'm not 100% sure), just write to their CS.
I also had the experience, that the metadata of books purchased from amazon is fucked up (bought a german book which says it's english in the metadata)