Are there direct trains from Bruges to Haarlem or do we need to go through Brussels first, change trains and all that?
There are no direct trains. Options include 2 - 4 changes of train, depending on departure time, usually via Antwerp, not Brussels. How to Look Up Train Schedules and Routes Online gives you the DB train schedule link and tips for using it.
As a general answer in addition to Laura's, I'd off the top of my head expect to change in Antwerpen, and either Den Haag, Leiden or Amsterdam Centraal, depending on the routing you choose.
The computer may tell you to change at Rotterdam but I usually find the connection easier at Den Haag, if a bit tighter.