My question is as stated in the title. What is the difference? When should I use kennen and when wissen?
Semantically they're very close; syntactically, "wissen" is much more restricted. It can't take a noun phrase as its object (
Ich weiß Deutsch), but normally takes a clause as an object:
Ich weiß, wie man Deutsch spricht
Ich weiß, was du meinst.
"Kennen", on the other hand, does take noun phrases as its object:
Ich kenne diesen Film.
Ich kenne viele Leute.
You cannot, however, use it to express skills and abilities, even if these entail knowledge of a subject matter. Skills are typically expressed through the verb "können":