'have kept' is potentially grammatically correct, but not correct in the context, and it's fairly uncommon in any case. The use of kept here suggests he has it without having the right to it, so for example: "after stealing the car, I have kept it for two months, but I still plan to return it at some stage".