Solution 1:

I was able to figure out all of my issues except for preseeding the Edubuntu-specific questions, so I am going to resort to an Ubuntu vanilla install with the following customizations. I will be installing the Edubuntu packages and setting more things up with bash scripts that I will run from SSH.

  • Keyboard layout is set with keyboard-configuration/layoutcode=us and console-setup/ask_detect=false boot parameters
  • Packages are removed with ubiquity ubiquity/success_command string in-target apt-get -y purge package
  • Packages are installed with ubiquity ubiquity/success_command string in-target apt-get -y install openssh-server;
  • I was able to set the hostname with commands after ubiquity ubiquity/success_command string (see EBA.seed below)

isolinux/isolinux.cfg

# D-I config version 2.0
include menu.cfg
default vesamenu.c32
prompt 0
timeout 50
ui gfxboot bootlogo

isolinux/txt.cfg

default unattended-EBA-install
label unattended-EBA-install
  menu label ^Install for EBA unattended
  kernel /casper/vmlinuz.efi
  append  file=/cdrom/preseed/EBA.seed keyboard-configuration/layoutcode=us and console-setup/ask_detect=false boot=casper automatic-ubiquity noprompt initrd=/casper/initrd.lz --
label live
  menu label ^Try Ubuntu without installing
  kernel /casper/vmlinuz.efi
  append  file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/casper/initrd.lz quiet splash --
label live-install
  menu label ^Install Ubuntu
  kernel /casper/vmlinuz.efi
  append  file=/cdrom/preseed/ubuntu.seed boot=casper only-ubiquity initrd=/casper/initrd.lz quiet splash --
label check
  menu label ^Check disc for defects
  kernel /casper/vmlinuz.efi
  append  boot=casper integrity-check initrd=/casper/initrd.lz quiet splash --
label memtest
  menu label Test ^memory
  kernel /install/mt86plus
label hd
  menu label ^Boot from first hard disk
  localboot 0x80

preseed/EBA.seed

#### Custom Preseed for EBA
### by Kevin 
### Ubuntu/Edubuntu 14.04
##################################################################################



### General
###################

# Preseed empty to avoid the summary page
ubiquity ubiquity/summary string empty
# reboot automatically, add 'noprompt' to the kernel command line
ubiquity ubiquity/reboot boolean true



### Localization
####################
# Preseeding only locale sets language, country and locale.
d-i debian-installer/locale string en_US

# Keyboard selection
# Disable automatic (interactive) keymap detection.
d-i console-setup/ask_detect boolean false
d-i keyboard-configuration/xkb-keymap select us

ubiquity languagechooser/language-name select English
ubiquity countrychooser/shortlist select US
ubiquity localechooser/supported-locales en_US.UTF-8
ubiquity console-keymaps-at/keymap select us


### Network configuration
#############################
# Disable network configuration entirely. This is useful for cdrom
# installations on non-networked devices where the network questions,
# warning and long timeouts are a nuisance.
d-i netcfg/enable boolean false

# netcfg will choose an interface that has link if possible. This makes it
# skip displaying a list if there is more than one interface.
d-i netcfg/choose_interface select auto

# Disable that annoying WEP key dialog.
#d-i netcfg/wireless_wep string
# The wacky dhcp hostname that some ISPs use as a password of sorts.
#d-i netcfg/dhcp_hostname string radish

# If non-free firmware is needed for the network or other hardware, you can
# configure the installer to always try to load it, without prompting. Or
# change to false to disable asking.
d-i hw-detect/load_firmware boolean true

### Mirror settings
# If you select ftp, the mirror/country string does not need to be set.
#d-i mirror/protocol string ftp
#d-i mirror/country string manual
#d-i mirror/http/hostname string http.us.debian.org
#d-i mirror/http/directory string /debian
d-i mirror/http/proxy string http://proxy:8002



### Account setup
####################

# To create a normal user account.
d-i passwd/user-fullname string EBA Tech
d-i passwd/username string eba
d-i passwd/user-password-crypted password ****

### Clock and time zone setup
# Controls whether or not the hardware clock is set to UTC.
d-i clock-setup/utc boolean true

# You may set this to any valid setting for $TZ; see the contents of
# /usr/share/zoneinfo/ for valid values.
d-i time/zone string US/Eastern

# Controls whether to use NTP to set the clock during the install
d-i clock-setup/ntp boolean true
# NTP server to use. The default is almost always fine here.
#d-i clock-setup/ntp-server string ntp.example.com



### Partitioning
#####################

d-i partman-auto/method string lvm
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-md/device_remove_md boolean true
d-i partman-lvm/confirm boolean true
d-i partman-lvm/confirm_nooverwrite boolean true

# You can choose one of the three predefined partitioning recipes:
# - atomic: all files in one partition
# - home:   separate /home partition
# - multi:  separate /home, /var, and /tmp partitions
d-i partman-auto/choose_recipe select atomic

# This makes partman automatically partition without confirmation, provided
# that you told it what to do using one of the methods above.
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true



### Base system installation
################################

### Apt setup
# You can choose to install restricted and universe software, or to install
# software from the backports repository.
#d-i apt-setup/backports boolean true
d-i apt-setup/extras boolean true
d-i apt-setup/multiverse boolean true
d-i apt-setup/partner boolean true
d-i apt-setup/restricted boolean true
d-i apt-setup/universe boolean true

# Use non-free packages
ubiquity ubiquity/use_nonfree boolean true

# Policy for applying updates. May be "none" (no automatic updates),
# "unattended-upgrades" (install security updates automatically), or
# "landscape" (manage system with Landscape).
d-i pkgsel/update-policy select unattended-upgrades

### Boot loader installation
# This is fairly safe to set, it makes grub install automatically to the MBR
# if no other operating system is detected on the machine.
d-i grub-installer/only_debian boolean true



### More Fun!
#############################

#ubiquity ubiquity/edubuntu-addon_fallback_install booolean false
#ubiquity ubiquity/edubuntu-addon_ltsp_install booolean false
#ubiquity ubiquity/edubuntu-addon_ltsp_interface select eth0
#ubiquity ubiquity/install/generate-blacklist multiselect ubuntu-edu-preschool ubuntu-edu-primary ubuntu-edu-tertiary

# Install/remove packages, set hostname, install wifi drivers
ubiquity ubiquity/success_command string \
in-target apt-get -y install openssh-server; \
in-target apt-get -y purge unity-scope-imdb unity-scope-musicstores unity-scope-zotero unity-scope-click-autopilot \
unity-scope-deviantart unity-scope-gallica unity-scope-gdocs unity-scope-github unity-scope-googlenews \
unity-scope-launchpad unity-scope-mediascanner unity-scope-onlinemusic unity-scope-openweathermap \
unity-scope-soundcloud unity-scope-sshsearch unity-scope-yahoostock unity-lens-photos unity-lens-video \
unity-scope-audacious unity-scope-chromiumbookmarks unity-scope-clementine unity-scope-click unity-scope-colourlovers \
unity-scope-gdrive unity-scope-gmusicbrowser unity-scope-gourmet unity-scope-guayadeque unity-scope-mediascanner2 \
unity-scope-musique unity-scope-openclipart unity-scope-texdoc unity-scope-tomboy unity-scope-video-remote \
unity-scope-virtualbox unity-scope-yelp unity-webapps-service account-plugin-ubuntuone ubuntu-purchase-service \
deja-dup indicator-messages empathy gwibber thunderbird transmission-gtk pidgin; \
if [ "$(cat /sys/class/dmi/id/chassis_asset_tag)" != "" ]; then \
    in-target hostname $(cat /sys/class/dmi/id/chassis_asset_tag) ;\
    in-target sed -i "1s/.*/$(cat /sys/class/dmi/id/chassis_asset_tag)/" /etc/hostname ; \
    in-target sed -i "2s/.*/127.0.1.1\t$(cat /sys/class/dmi/id/chassis_asset_tag)/" /etc/hosts; \
else \
    in-target hostname $(cat /sys/class/dmi/id/product_name) ;\
    in-target sed -i "1s/.*/$(cat /sys/class/dmi/id/product_name)/" /etc/hostname ;\
    in-target sed -i "2s/.*/127.0.1.1\t$(cat /sys/class/dmi/id/product_name)/" /etc/hosts; \
fi; \
if [ lspci -d 14e4:4315 ]; then \
    in-target apt-get -qq install firmware-b43-installer || in-target apt-get -qq install firmware-b43-lpphy-installer; \
fi;