Well, what are you tracking? The word troop leads me to the Boy Scouts of America groups, which means that they have to be chartered with their regional council (i.e. Baltimore Area Council for mine).
Now, if that's true, then what you should do is limit the input that can be allowed. Instead of leaving a free text-area for city/town, ask for a list of charters from the council so you can create this. Then just list the cities that troops are chartered in in a drop-down box. This way, you can say okay, Troop 33 from Elizabeth is also the same Troop 33 from Brick is also the same Troop 33 from New Brunswick (forgive my terrible NJ geography).
That's one thing. Now, on the other hand, you could also manually enter these troops and just have the end users select the one they're a part of. And if the city/town can vary so much, just limit it to duplicates in the council, unit #, and unit type.
For example (we're going to use Baltimore Area Council BSA info for now) there are about 4 different "types" of units in the BAC: Cub Scouts, Boy Scouts, Venture Crew, Explorers. Now, for each of these 4 types, there is usually 1 troop number across them (mine was 733). So there is Pack 733, Troop 733, Crew 733, and Post 733 respectively.
Now, These units are all in the same Council (BAC). There might be another Council (National Area (Washington, D.C.)) that has another 4 items with unit numbers 733. The only difference is council. The towns / cities don't matter.
I'd say try and limit what you're comparing, or limit the user input. Obviously, limiting input can be risky; however, it can work to your advantage in that you'll always know what info is coming in.
If I had more information, I could probably help you more, but I think I hit some good points. Hopefully I helped you a bit.