If you want something simpler, why not just use a high-side load switch like the TI TPS2061DBV?
That would handle about 1A-1.5A and gives you current-limiting protection too.
It has a low-active enable input /EN, so connect /EN to IN via a 10K resistor, and then connect both the PB switch and PIC IO pin to /EN. The PB would connect /EN to GND to turn it on, after which the uC would set its IO pin low to keep /EN on. To turn off the uC could just set the IO pin to input mode.
Single SOT23 package, cost ~ $1. Comes in a variety of packages with status output, duals, etc.