EDIT by hermit because this is a long thread. Solution found in this post. Much thanks to jmk!
I recently designed my first PCB. I designed it with KiCad and ordered from Osh Park. Basically, I made a development board for the microcontroller that I normally use on a breadboard, a dspic33ev256gm102. On the PCB, the pins are broken out to a bunch of male headers. I have LEDs and switches that aren’t hardwired to the microcontroller, they are just available if I want to wire wrap to them. The dspic33ev256gm102 was on backorder so I purchased some dspic33ev256gm002 instead, which shares the same datasheet and pinout, just missing CAN functionality as I understood it. It is an SSOP package.
I checked the PCB for shorts before populating it. I populated my PCB with all of the parts, cleaned the board with 91% alcohol, and checked for shorts again using a multimeter. I let it dry for about 24 hours and tried programming it.
As soon as I plugged it in to its 5V power source, I heard fizzing. The programmer could not detect the device and the microcontroller IC got hot. I unplugged it and checked for shorts again. This time I found a short between power and ground. I am confused how this happened since it wasn’t there before. I looked at my board under a magnifying glass and could not find any solder bridges.
I had a spare copy of my PCB and spare parts, so I decided to try again. This time, I only populated the microcontroller, its bypass capacitors, its Vcap capacitor, and a couple resistors needed for the programmer. I also soldered some wires onto the board for power and the pickit3. I checked for shorts on this new board and did not find any. I plugged it in to power and it started smoking. I unplugged it and checked for shorts again, and what do you know, power and ground were shorted again.
I attached a picture of my schematic. Could somebody please review it and tell me if I made a bad mistake somewhere? I can provide the KiCad project files as well if you want to see my layout and BOM.