I ran into similar issues with our environment where our server machine was running Windows Server 2008 R2 and after struggling we managed to figure out where the Current Thread was reading the culture from.
If you navigate in the registry to the following path
HKEY_USERS\.DEFAULT\Control Panel\International
You will see that it is probably set to something that you do not want. If for example you would like to change it to "en-CA" you will need to change the current registry values to the following:
Locale: 00001009
LocaleName: en-CA
sCountry: Canada
sLongDate: MMMM-dd-yy
sShortDate: dd/MM/yyyy
sYearMonth: MMMM, yyyy
Once these registry values have been changed, the machine will require a reboot.
Hope this helps you as much as it helped us in solving our problem.