To run the local server in production mode, try:
RAILS_ENV=production script/server
or
script/server --environment=production
The problem is that, unless you're also using the webrick/mongrel server in actual production, doing this will not exactly duplicate your actual production configuration (presumably using Apache or Passenger?). Also there might be subtle differences in environments that could be causing your problems.
How are you restarting your production environment when you change things there? this depends on how you deployed, and it might be as simple as dropping a restart.txt in your app's /tmp, or as difficult (not really) as restarting Apache or the Mongrel processes serving your app. It seems odd that your changes take a long time to appear when you do this.
When a problem arises in production mode, I just check the production.log which usually points me in the direction of a fix. I implement this in development, and then redeploy. That usually takes care of things. Using Capistrano it just takes 3 commands (a commit, a push and a deploy), unless your setup is significantly more complex than mine.