I tried to see what's going on with your forms, but it's taking too long, so I decided to test it with a new form, which seems to work. My guess is maybe your form got corrupted. Just my 2 cents...
Instead of assuming the previous record is only 1 value before the current one, you could search for the highest autonumber value that is less than the current one.