After the seed file execution is complete (and beyond even preseed _late_default) /etc/network/interfaces is being overwritten by the finish-install process. That means that the custom /e/n/i file generated and put in place by
post_install_network_config_deb is simply wiped out. You're supposed to be able to short-circuit finish-install by some seed setting ... but, for reasons unknown, it doesn't work. (I believe this is related:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=698626).
Anywho ... the workaround that I came up with was to remove a couple of scripts executed by the finish-install process that were doing the overwriting:
d-i preseed/late_command string rm -f /usr/lib/finish-install.d/55netcfg-copy-config /usr/lib/finish-install.d/50config-target-network; wget -O- http://$http_server/cblr/svc/op/script/$what/$name/?script=preseed_late_default | chroot /target /bin/sh -s
If you look at the package source for finish-install you'll be able to confirm for yourself that those particular files are responsible for the overwrite.