You're right that perfect forms aren't used with could/would/should for present and future but that's because the perfect form is telling us that the thing is related to the past - it isn't giving us 'perfect' information.
I could have told you that. = I didn't tell you that. (not 'I haven't told you that.')
He would have recognised her immediately. = He recognised her immediately. (probability) or He didn't recognise her because he didn't see her. (unreal past)
In the case of probabilities, we don't know if the hypothesised past was 'perfect' or 'simple', so we have to use adverbs.
He could have read the letter when he got to the office. = He read the letter when he got to the office. [when = after]
To give it the 'perfect' meaning, we have to use already.
He could have already read the letter when he got to the office. = He had read the letter when he got to the office. [when = before]
It's a bit like the difference between British and American English:
I have eaten. = I already ate.
For your sentences, 'be able to' isn't a modal verb so you can just use it in a perfect form in the usual way.
For the other sentence, it depends where you put not.
They could have not done this for the past 5 months. = They did do it but it wasn't necessary.
I could have not been paying to park there for months if I'd realised that nobody ever checked.
They could not have done this for the past 5 months. = It's not clear what this means without more context.
They could not have done this for the last 5 months if they hadn't had the support of their friends and family.
Also, you can use the perfect form in past in the future:
They should have finished the repairs by the time we get there. = high probability
They should have finished the repairs by the time we get there. = possibility
They would have finished the repairs by the time we get there. = unreal future