You have the logic slightly backwards, and that is probably leading to the problem. In hide duplicates, the fields are used to tell the system how to pick which game should be shown, while the rest are hidden.
For example, lets say you have the following game list:
Game 1 (version: Beta)
Game 1 (version: 1)
Game 2 (region: Japan)
Game 2 (region: USA)
If you were to run the duplicate hider without setting any options, it would make you pick which of both Game 1 and Game 2 you wan't shown in your library.
If instead you used a Built-in filed of version = 1, then it would hide Game 1 (version: Beta) automatically, while keeping Game 1 (version: 1) visible. The system would also prompt you to select between the two duplicates for Game 2, because the version string option wasn't sufficient for it to select a single item (i.e., both might be version: 1).
Let me know if that helps.