Copy/Duplicate a Contribution
To this very old but unanswered question, I'll answer that there's now an extension that does exactly what you're asking: Clone Contribution. Quoting from the description:


  
  
  This extension provides:
  
  
  UI controls to clone a particular contribution, wherever contributions are listed (e.g., a contact's Contributions tab;
  contributions search results).
  Options to omit certain contribution properties from the cloning process (i.e., properties that will not be copied from the source
  contribution to the new contribution).
  An API Contribution.clone for cloning any number of contributions.
  
  
  During the cloning process, the following contribution properties can
  be changed so that they're immediately different in the new
  contribution:
  
  
  Contribution Status
  


I'm the developer on this extension.