Kim, it’s usually the theme, but can also be a plugin causing it. Basically, something in your installation is changing the way the content is filtered. The problem you describe happens when something adds [hilite code]
[/hilite] where new lines are, even though they are in the HTML of the hidden input fields for the button’s code. And that also could affect the way the button works, causing the checkout to not work, with an error on PayPal’s side when attempting it.
The way to check what is causing the problem, would be changing for a moment the theme to the default TwentyEleven and refreshing the page with the button to see if the problem went away. If that doesn’t take care of it, deactivate other plugins one by one, checking after each if the problem went with it. It’d be good to make a full backup of the site before these tests, too, especially so close to the launch.
If you don’t have time to test all this, you can also use a button created over at PayPal, which won’t have the shortcode parsing issue, but only works with new users, since existing users won’t have their account info added (which may be fine for your site). Knowledge Base » Using PayPal created buttons
I hope it helps!