Below is what I was working on today. It's only for 1 switch and set of LEDs, but it was working well for 2 if you repeat everything, give the variables new names, and assign things to new I/Os. Because of physical implementation, I'll most likely need to use something like the 6 pin 10F202. This will also make the next problem easier to deal with. If I were to use 1 PIC to read n number of switches, it would need to be able to allow one switch to perform its operation even if another switch was being pressed and held.
Code:
#config 
    __CONFIG _CP_OFF & _WDT_OFF & _BODEN_ON & _PWRTE_ON & _INTRC_OSC_NOCLKOUT & _MCLRE_OFF & _CPD_OFF
#endconfig

Define OSCCAL_1K 1 ' PIC12F675, Calibrate internal oscillatordefine MCLRE_OFF

LED1 var GPIO.0 ' Alias GPIO.0 to LED1
LATCH1 var GPIO.1 'Alias GPIO.1 to LATCH1
PB1 Var GPIO.3 ' Alias GPIO.2 to push button
LED1on var word
LED1off var word

    
    ANSEL = 0 ' Set all digital
    CMCON = 7 ' Analog comparators off
    TRISIO = %11001100
    LED1 = 0
    LATCH1 = 1
    LED1off = LED1
    LED1on = LATCH1
    pause 10
    LATCH1 = 0
    
    

main:
    switchpress1:
    if PB1 = 0 then
        pause 40 
        gosub LED1status
    LED1on = 1
    LED1off = 0
    pause 5
    LATCH1 = 0
    gosub switchrelease1
    pause 40
    endif
    
goto main
End

LED1status:
    if LED1 = 1 then 
        LATCH1 = LED1on
        LED1 = LED1off
    elseif LED1 = 0 then
        LED1 = LED1on
        LATCH1 = LED1off
    endif
return


switchrelease1:
    do until PB1 = 1
        pause 5
    loop
return