You can use booking.com as a start, but you should always compare with expedia, agoda, and with the riad direct. We booked all ours direct.
In Chefchouen we stayed at the Taj (no relation to Taj hotels in India!), which is a modern hotel, but lovely, perched on the top of the hill overlooking the city. in Tangier we stayed at the Hilton by the main rail station, which was also modern, but a lovely hotel. While eating breakfast you’re looking over to Spain just a few miles away! You could also stay at the Hotel Villa De France, which is an institution… but a little faded these days. But it’s close to the souk and rich in history.
Marrakesh… you are spoiled for choice for riads, we stayed at Izza, which we read about in the Qantas inflight magazine. But there are so many! Do your research to get the perfect fit.
Then I’d probably recommend a tour to take you from Marrakesh to Fes, one that goes through the atlas mountains and to a desert camp for the night, plus all the fascinating towns on the way. You can book those separately ex Marrakesh (or in the reverse). They should also take you to Volubilis, the ancient roman ruins. You can do those for two or three days, depending how much time you have.