Hi,
Caching would also be the first I'm thinking about.
The currency change is properly taken into account by HikaShop, so it seems strange that the module doesn't see it.
That's because if you look at the code of the file modules/mod_hikashop_currency/tmpl/default.php, it uses the function hikashop_getCurrency to get the current currency.
That's the same function used everywhere in HikaShop to get the current currency. So if the module sees the old currency with this function call, I don't see why it would be different for the rest of HikaShop. And thus the only reason would be some kind of caching system which would actually display the HTML of the module from a previously generated cache, instead of the current state.
In that file, add this code at the top:
<?php echo date('m/d/Y h:i:s a', time()); ?>
It will display the current time at the top of the currency switcher module.
That way, you can see if the time changes or not each time the switcher module is displayed.
If it's not a new time after you change the currency, but the same old time as before you change it, it means there is some caching going on.