Rewinding Time using Blueprints?

Using a Command Pattern is a good idea for this. You end up with a stack of commands at runtime, and you can revert them (or add commands that undo their effects)