It is possible (although strange imho) that your hosting provider has some kind of load balancing/reverse proxy setup that strips some headers before passing the request to the app server.
F3 has a fallback mechanism to get the headers if getallheaders() doesn't exist (for example, if using php-fpm instead of mod_php or php-cgi) but if, for some reason, getallheaders exists but doesn't return all the regular headers, I guess that could probably be causing these issues.
Also, are you absolutely sure that your host is using Apache? Can you find out from your host's support if they employ any sort of system that may be stripping the accept-language header?
Could you create a simple test.php on your host with:
<pre>
<?php
if(function_exists('getallheaders')) {
echo 'getallheaders:<br>';
var_dump(getallheaders());
}
echo 'server:<br>';
var_dump($_SERVER);
echo '</pre>';
phpinfo();
And then share the link to that file with us? (or at least let us know what hosting company you're using)