Ok, sorry for the delay. It’s been busy here.
Using the stack decoder on your reboot error I get
0x40116085: _svfprintf_r at …/…/…/…/./newlib/libc/stdio/ vfprintf.c line 1430 0x4011410d: _snprintf_r at …/…/…/…/./newlib/libc/stdio/ snprintf.c line 68
0x400d5faf: ComposeSettingsPage() at C:\Users\Eric\Documents\GitHub\MavlinkToPassthru\MavToPass_v2.61.8/ WebSupport.ino line 194
which points me at his line in Mav2PT
sprintf(temp, "<input type='radio' class='big' name='_fc_io' value='WiFi' %s> WiFi    ", set.fc_io2);
which suggests that the sprintf() blew up trying to format set.fc_io2
which in turn suggests that your settings in eeprom are corrupt.
Run with this macro activated, but run one time, and the deactivate it:
#define Reset_Web_Defaults // Reset settings in eeprom. Do this if you suspect eeprom settings are corrupt.
// USE THE ABOVE LINE SPARINGLY. IT CAN EVENTUALLY WEAR OUT YOUR EEPROM.
Please could you try MavToPass_v2.61.9 for WiFi in and serial out. It should work with either TCP or UDP. For TCP I had to add code to support a local client session, but UDP already worked as you indicated before.
The serial pins remain as per your esp32 board variant, so for the heltec wifi kit 32, the pins are
#define mav_rxPin 27 // Mavlink serial rx
#define mav_txPin 17 // Mavlink serial tx
We cannot support upstream serial (to the FC) and downstream serial (like to the GCS) simultaneously on the ESP32 as there are not enough uarts. Softwareserial is an option, but right now I can’t imagine why it’s necessary.