We're working using a mixture of Sprints and a longer-term roadmap/schedule - we have a rough plan for the order all features should be developed and a rough estimation on when that will take. Each month we define sprints for actual tasks in progress and we then update the master schedule frequently as we see how well sprints are completed.
It's very important to us we can always tell our customer an estimated completion date for the project, even though we all know this will move.
It's also a requirement they can see how far things shifted from initial estimations, not to criticise but to understand. e.g. our roadmap has task X to be delivered in April, but it actually gets delayed in June. I can't see how to do this because if I change the finish date, the previous one is gone. I know Wrike keeps a history because on individual tasks you can see it, but can I report this per-task or otherwise?