<disclaimer>The following information is my understanding and provided for the purpose of trying to assist you in finding your problem. It is not intended to be taken as definitive and final.</disclaimer>
In order for software to execute you need a functioning CPU, data bus, address bus and stable storage that holds the software executable code. Access to devices requires correctly functioning address decoding. Devices (or ICs) are enabled by the address decoding ICs. This decoding can be accomplished by several different ICs.
If the Leon software correctly passes the RAM test then the RAM address decoding IC (8C) probably works. It's a good bet that ROM address decoding ICs are working too (since the software is executing).
Each PIA is located on the address bus and those addresses are decoded by the 74LS138 (8D). Note that is NOT the only IC involved in address decoding. It's just an example of one of the decoders. Please consult sheet 1 of 4 of the CPU schematic. Address decoding is located in the top right section of the sheet. The physical ICs are co-located on the board. In this case the software might still be executing but not able to access the PIAs as they aren't selected because their address is not correctly decoded (and therefore the CS line not correctly enabled).
I would start my search in the address decoding section if you know you have a good ROM, RAM and CPU.
address_decoding.png