So I just took a quick look. Three different runs show the results only changing slightly. There are two rules that are getting different results, "Optimize Images" and "Reduce Server Response Time".
Optimize Image is changing because you have a scrolling banner on your homepage and sometimes PageSpeed gets different banners in its results.
Reduce Server Response Time is changing because your server isn't always consistent in it's response time. This is fairly common, but isn't a big issue on your site as long as the response times remain generally low.
There are two big issues on your site that you can fix without worrying about the changing score.
First, optimize your images. That's your number one problem. Most of your images aren't compressed as well as they could be. Your banner images are also much too large for the average mobile phone. Shrinking them can save you a large number of bytes. You can read more about optimizing images here:
https://developers.google.com/speed/docs/insights/OptimizeImages.
The other rule, "Eliminate render-blocking JavaScript and CSS in above-the-fold content" can be read more about here
https://developers.google.com/speed/docs/insights/BlockingJS and here
https://developers.google.com/speed/docs/insights/OptimizeCSSDelivery. In short, external resources such as JS and CSS prevent the web browser from rendering your page until they are loaded. On slow, high latency mobile networks, this can cause a large, perceptible delay where you page will simply be blank white. I actually saw this in my desktop browser when I first loaded your page. We recommend attempting to inline resources necessary for rendering the top part of your page and then asynchronously loading remaining resources.
Let us know if you have any other questions.