Language switcher shows wrong language on front page after detection by browser settings
It could well be that your issue is due to the fact that you do not have any nodes (Drupal without ANY nodes ... go figure ... a CMS without any "real" Content). So to get it to work you may have to make Drupal give "a few nodes" (i.e. 1 for each language ...).

If you agree, and based on what is described in Multi-language website and language switcher in front page, you may want to try if the steps below, or a subset of it, resolve your issue (probably replacing all 'IT' by something like 'GE' for 'German'):


Assign "path prefix only" to the language settings.
Assign the prefix EN for English.
Created an IT front page (e.g. node/1), chose language IT and leave the menu link title empty in the primary links (you probably want to leave the body empty also).
Create the EN front page (e.g. node/2), chose language EN and leave the menu link title empty in the primary links as well. You probably want to leave the body empty also, though for testing purposes you may temporary want to put some visible content in it also.
In both the IT page and the EN page check "promoted to front page" in the publishing options.
Not sure if you need this step also (first try by skipping this step): in Administer &gt; Site building &gt; Menus &gt; Primary links, create a menu item for "Home" and assign its path to "front", parent item "primary links" and language "all languages".
In "Site information",  put "node" as default front page.
Check if your language switcher now works fine: verify if it changes the content from node/1 to node/2 (each of them with their related blocks to be shown) based on selected language. If you also performed step 6, then verify if the primary link "Home" always goes to the corresponding front page (and related blocks).