I wrote this plugin (yankstack.vim) to solve this problem. It gives you something like Emacs's kill ring for vim. You can yank or delete multiple things, do a paste, and then cycle back and forth through your history of yanked/killed text. I find its easier than having to remember what register I yanked something into.
In my .vimrc, I have these mappings:
nmap yankstack_substitute_older_paste
nmap yankstack_substitute_newer_paste
which let me hit ALT-p or ALT-SHIFT-p to cycle back and forth through my paste history.