I told you to have your program report things back to you through “notify”.
You need to have your program reports “do (latitude X longitude Y) match with table entry #1 (latitude A longitude B) ?” and give up a result like “table entry #5 is a match” so that you see what is going on. If the system reports MULTIPLE matches in the same key press, you would know there is an issue. If there is no match, you will also see no message.
Then, depending on the conditions of match/ no match you can dig further.
The potential issue with button 2 is that if you forget to use it, then BL is NOT RESET. Which mean the loop will stop on the first case the next time you press button 1, because BL has remained set to 1.
THAT is your problem: your loop termination condition does NOT depend on the result of the current press, it could depend on the user NOT clicking button 2 and that is POOR design.