Is it really necessary to isolate the UART? I know it can be done with 2 optocouplers for less than $1... H11L1 comes to mind.
The Waveform Generator will be mains earth referenced, the DC Load modules will be isolated from the UI, same thing with the Lab Power Supply.
Actually... changing* from a 16LF1455 to a 16F1455 and powering it off the USB +5V and adding two optos with some resistors would do the job.
*so no 3.3V regulator would be required
I did use some (actually quite a lot) of H11L1s in a design, if resistors are chosen carefully you can easily reach 230.4k BAUD with a small but almost symmetrical delay between input and output rising and falling edges.
PIC18 and PIC16 architectures are very similar. And I don't mean that in a positive way. The architecture is clearly not optimized for todays complex programs written in C and accessing 4K of RAM (that PIC in particular has 64 banks!). It will probably run and do it's job, but given it's limits.
Yup, they're almost the same, the only thing I noticed on the PIC18s that PIC16s don't seem to have is the 8-bit x 8-bit hardware mutiplier. Most 18F also support higher clock speeds.
PIC24 is completely different architecture. The instruction set is tailored to C which results in much faster code, it has a vectorized interrupts, proper software stack, etc.
dsPIC shares the same PIC24 basic CPU core, but has DSP instructions you specifically have to use. They are nice for higher throughput systems, but not a necessity for general purpose stuff.
Personally the only reason I would choose a PIC16 is if I can save 1-2 chips using an (unique) onboard peripherals (like the 24-bit measurement timer).
At some point I thought about using a PIC24 for the UI but after looking confused at the datasheet and thinking about how much code would be required to make it work since it doesn't have the onboard peripherals the 16F18857 has I gave up on the idea.
Two relatively uncommon peripherals the drove my decision to use the 16F18857 are the Signal Measurement Timer, makes reading the fan RPM a piece of cake, just spits out the period between pulses, and the Numerically Controlled Oscillator which will be the Waveform Generator's square wave source. Haven't completely understood how to use it so I've got some reading to do.