The difference is: what governs what.
In d.), Konjunktiv II of "hätte" governs the Partizip Perfekt of klappen and the infinitive of können, which means that it is the Plusquamperfekt of Konjunktiv II.
This is typical irrealis, it could have worked if we tried it.
In c.), Konjunktiv II of können governs Partizip Perfekt of klappen and infinitive of haben. This results in a rather drastic change of modality - let's assume that you have a problem at work and have an idea how to solve it. You implement it and the results look promising, but you won't know until later. Then you will say "Meine Idee könnte geklappt haben.", which means that you assume that something might/could have worked due to past actions.
Another example:
Meine Kollegin hätte das drucken können.
She could have, but she hasn't.
Meine Kollegin könnte das gedruckt haben.
There is a stack of paper and we don't know who it was, but we assume that it is hers.