Technically, pennance, Purgatory and indulgences do not make up for guilt, but for the temporal punishment due to the damaging effects of sin. The most important sense of “guilt” is not feeling bad for sinning and offending God, but the actual offense given to God. The bad feeling just comes from recognizing that we have damaged or destroyed our relationship with God. You can be guilty of offending God, but not feel guilty (as in the case of those who have deadened their consciences and don’t even recognize that what they are doing is sinful). You can have guilt for offending God without “guilt” (the feeling). The only thing that takes away our guilt for offending God is the sacrifice of Jesus.
But in addition to causing our guilt, sin also causes us to be sinners, i.e. to develop a sinful nature, and to harm others. By lying, we offend God (incur guilt), but also make ourselves liars and hurt those we lie to. These are the temporal effects (because they are in time), and so temporal punishment is due. Jesus’s blood takes away the guilt, but the damaging effects of our sin to ourselves and others needs to be made up for by growing in virtue. This can be painful, and prayer (our own and others) and suffering (our own and others) helps undo the damage. Souls in purgatory are save through Jesus from the guilt of their sin, but are suffering to make up the damage; they are suffering temporal punishment. Pennance and indulgences, prayers and suffering of others, can make up for the temporal punishments that others owe, both here on Earth and in Purgatory. As Paul says, “Now I rejoice in my sufferings for your sake, and in my flesh I am filling up what is lacking in the afflictions of Christ on behalf of his body, which is the church” (Col 1:24).