If you are able to work from the source code, you should get the very latest code and see if it works better. Previously we were using the siteSettings.SiteRoot property in a number of places. The problem with that is that siteSettings is cached (for 5 minutes at a time by default) so if it got cached using one url then that url would be the cached site root and if a request comes in over the alternate url that cached value may not be correct. I've deprecated that property on SiteSettings and changed all the places where is was used to instead use SiteUtils.GetNavigationSiteRoot(). This should make sure that the site root is always calculated based on the current request.
If you are not able to update from source code, I will probably make a new release on Thursday.
I'm not 100% sure this is the cause of the problem, but it could very well be.
Hope that helps,