buy one get one free Ubercart discount module?
It looks like Ubercart Discounts (Alternative) can do you you ask:


  Features
  
  
  Filter both products required for the discount to apply and qualifying products that receive the discount based on multiple products, taxonomy terms, node authors, or product classes.
  The above filters allow for a discount like: buy 3 of any of X product and get a discount on any of Y product.
  Attempts to automatically add free products to the cart for codeless discounts.
  Discount # of products, a percentage or a fixed amount off.  
  ...
  


I don't have any personal experience with the module, but it looks promising.