1. Yes, this is correct.
You are right to use 'whom' here, because 'whom' is an object pronoun. However, it is the not most natural way for a native English speaker to phrase this idea. As Jason suggests, it would be more natural to miss out the pronoun entirely and say 'I still haven't found someone I can play with' or even 'I still haven't found someone to play with.'
2. Yes, you can use 'could have' in a third conditional. For example:
'If I'd left the house two minutes earlier, I could have caught the train.'
'Should have' is mainly used to talk about a regret in the past, something which was supposed to have happened ,or would have been better if it hadn't happened. For example:
'You shouldn't have spent so much money on my present! It really wasn't necessary.'