My best & inelegant suggestion is creating a suite of Custom Fields to capture data for incomplete Story/Tasks in a completed Sprint.
Custom Fields track original Story, Estimate, Percentage completion, and the like.
Store all this either manually or auto-magically when a Sprint is marked Complete.
Then, copy the Incomplete Stories over to the next Sprint.
Seems some details need to be addressed, yet this is overall suggestion. Another, perhaps even more awkward suggestion is to
Rename an incomplete Story as "StoryName Part 1" in the Sprint that just ended
Add a Story "StoryName Part 2" in the new Sprint, using the same Project & Parent Task used for the original, incomplete, and now renamed Story.
Both incomplete-original story and new Story reside in same Project & Task, so they will report together for tracking purposes.
Pat Harrell Seed Company