It's pretty straightforward to record the players movement, it's basically a list of positions every frame. The first task is to choose a way to store all the positions, the Array or S plugins will do. Replying is just a matter of setting the player's position to the positions in the list one by one.
For example I used the Array plugin here:
http://dl.dropbox.com/u/5426011/example ... eDrops.cap
made in CC r1
The "ghost" sprite is in a container with the Array object so that each "ghost" will have it's own list of positions. I keep track of which "ghost" to record the player's position to by a variable with the ghost's UID (unique id). When recording the player's position is always put in the last element of the array, then the array's size is increased by one. When replaying another variable is used to indicate what index of the array to read from. After the ghost positions are set from the arrays a that index the index is increased by one. You can also reverse the replay by decreasing by one.
Another idea for using this with platform movement is recording and setting x/y velocity instead of position, that should help with having the replay's animations update.