Why do some values I set (e.g. the language "eng" (English) or the "default track" flag) not show up in the output file even though I've selected them in the GUI?
Scenario: You add a file in the GUI, select a track and chose "eng (English)" as the language. Later you open the file you've just created with a program (e.g. a hex editor, some player or the GUI's header editor). However, you don't see the language element for the track you've selected ealier.
The same seems to happen with some other things like the "default track" flag which does not seem to exist in the output file (according to mkvinfo and the header editor).
Your player does not support a Matroska feature called "default element values". It's a bug in your player as that feature is mandatory for Matroska support.
The Matroska specifications know a feature called "default element values". These default values have been in place since the beginning in 2002. The meaning of the default value is that any application reading a Matroska file must use the default value if the element itself is not present in the file. For example, if the track headers for a track do not contain a "language" element then this means that the value "eng" must be used by the reading application because "eng" is the default value for the "language" element. Similar case for the "default track flag" element. If it is not present in the file then the value "1" ("on", "yes") must be used because it is the default value for the "default track flag" element.
Starting with version 4.0.0 mkvmerge does not write elements to output files whose value equals their default value. This mostly applies to the "language" and "default track flag" elements. If an application does not show "eng" as the track's language even though you've selected it in the GUI then please file a bug report for that application.