I can reproduce the behaviour, but I believe that the code snippet presented is not the issue: that matches the semantics of automatic_mode. Essentially, in automatic_mode, the preseeding can override the interface. When not in automatic_mode, preseeding only sets default values in the interface, and the interface expects those to change.
To me, the problem consists of the lack of support for a bootloading in ubiquity. The try clause starting around ubiquity/scripts/install.py:1617 should have appropriate clauses for armel to install (or not) appropriate bootloaders (unless in automatic mode, and preseeded to not do so).
I can reproduce the behaviour, but I believe that the code snippet presented is not the issue: that matches the semantics of automatic_mode. Essentially, in automatic_mode, the preseeding can override the interface. When not in automatic_mode, preseeding only sets default values in the interface, and the interface expects those to change.
To me, the problem consists of the lack of support for a bootloading in ubiquity. The try clause starting around ubiquity/ scripts/ install. py:1617 should have appropriate clauses for armel to install (or not) appropriate bootloaders (unless in automatic mode, and preseeded to not do so).