I am attaching my script as well as on of my outputs so hopefully someone can see something I am missing. I don't understand what I'm doing wrong here since I expect there should be 9 hours of generation output a day instead of just 3 and running it on previous latitudes and longitudes has given me correct outputs. Please pardon the messy script and let me know if you need any clarification.
I haven't looked at your code in detail so I may be guessing, but ... looking at the sample weather file that you've provided it seems the solar data is for GMT (or some other timezone) rather than -7 - the solar values peak at about 19:00 rather than 12:00. I believe the values should be for local time rather than GMT. If SAM is producing the correct results it must be adjusting for the timezone and hence moving the data/time "backward/forward" 7 hours. Try adjusting your data backwards 7 hours to see if you get the correct result.