This is less likely to be an issue with Webdriver being unstable but with the execution timing behaving differently than before. I would suggest taking a look at using explicit waits for some of the elements that you are having a hard time finding. You can read about them here in the selenium documentation.
This is the seleniumhq example:
require 'rubygems' # not required for ruby 1.9 or if you installed without gem
require 'selenium-webdriver'
driver = Selenium::WebDriver.for :firefox
driver.get "http://somedomain/url_that_delays_loading"
wait = Selenium::WebDriver::Wait.new(:timeout => 10) # seconds
begin
element = wait.until { driver.find_element(:id => "some-dynamic-element") }
ensure
driver.quit
end