Why is progress set back to 0% when moving back to "To do"?
This is because "To do" means that work hasn't yet started. So, if you move a backlog item or task back to "To do" after having worked on it, this essentially means that you discarded the result of that work.
If you would like to pause or park a backlog item or task without losing its progress, what you can do is add an additional column to the board. For example, name the column "Paused" or "Parked", and place it after the "To do" column.
To do this, click "Edit this board" at the bottom of the "Task board" or "Kanban" page. Then click "Add a column". Make sure that the "Status in this column" field is set to "In progress". This means that backlog items and tasks will stay in progress, and keep their progress percentage, when moved to the column.