By flash memory I assume you mean NOR memory (SD cards are just a type of NAND and too slow, there were NAND to NOR loading cards at one point in time but NOR write speeds are not noted for their speed). 512mb would necessitate some form of bank switching (the GBA can only address 32 megabytes) and either would want some form of paging (unless you want to limit yourself to bank aligned or a single ROM.... which would be pointless for a 512 and less fun for 256). How you would select a ROM I am not sure, most went for some form of loader and a reset upon selection approach, for a first pass I would probably consider something like the N64 third party memory cards and have a pushbutton.
PIC..... nobody has really designed a top flight new cart in years at this point and even back when it was a price focused iteration on what came before. To that end a pic in 2013 would probably stack against a early 2000's CPLD or even viable FPGA, I do not have numbers here but I would be willing to bet on it. I had hoped someone would emulate save types in hardware rather than patching them (though patching is not hard) to use SRAM and I am not sure a PIC could do that on top of everything else, patching to use a SRAM chip should not be a problem though (short version is search for an ASCII string of SRAM, EEPROM or FLASH and depending upon the also ASCII letters and numbers that follow it you direct identical patches to slightly different locations not far after-- do a binary compare of something patched with EZ4client or GBATA if you want examples).