Please note that this behavior is quite known and is working as designed. In fact this behavior is related to the Qlik engine and can be reproduced in a simple script without using the Qlik REST connector.
After the reload, the values will be: 02501,02501,2502,2503. 2501 is missing.
In the example above, the engine will interpret the id column as numbers. The engine will pick the first occurrence (based on load order) of the number 2501 in id column, which will be 02501, and use that as the sting representation of the number. If you really want to keep the initial zero and treat 02501 and 2501 as two different things, you need to load the id column with an explicit cast to text.
LOAD text(id) as id, name