The algorithm for matching templates is unknown; the manufacturers did not release it probably because it's IP. You can't compare byte-by-byte because as you've discovered the generated template isn't always the same for the same finger. If you notice, there's a confidence value as well as different security levels implying there are different criteria for matching prints depending on the system parameters. The best you can probably do is store the templates on your database but use it as a second factor to authenticate users. What I mean is,
- you can have a user enter some unique ID at a terminal and place their finger as well,
- your Arduino queries your server with that ID as a key,
- the server replies with the fingerprint template associated with that ID,
- the Arduino forwards this template to the module and sends a command to perform a 1:1 match between the template just gotten from your database and the template just generated from the user's finger.
- If they match, then you know you have the right user. Else, he's an impostor.
Or you can just make do with the local storage on the module and use your server only for assigning IDs during enrollment. If you still want to go ahead to get the character file from the module, you can try the UpChar command in the module's datasheet and see if you have any luck with it.