Hi Quiet,
Regarding language, the more you travel through countries with less common languages (Farsi, Vietnamese, and Turkish being my most difficult to get to grips with!) the more you'll find that it's possible to be fluent without speaking a word provided you take the time to establish some kind of connection with who you're "talking" to. Smiles and pointing go a huge way (except, it seems, with Chilean or Argentine cops when you've parked your truck by a fire hydrant!

) In Morocco generally people are happy to make an effort to understand you and a combination of English, French, and a greeting and or thanks in Arabic will go a long way. Mixing them all up in one sentence doesn't matter. It's only the occasional key word that will be understood anyway!
Last November I drove straight into the port at Algeciras, ignoring the touts. Parked in the carpark opposite the line of ticket offices. Went in and bought a ticket, which seems to automatically be open jaw return (but just check, don't take my word for it!) and was on the next ferry out 20 minutes later. (Almost missed it because my friends got lost in the port - my fault, drove off too fast and lost them

!)
I went via Ceuta, but the new Tangier port with it's insurance offices etc might be a better option (and avoids the scrum at Fnideq border if you're trying to come home in the morning)
Incidentally, I do feel sorry for all the agencies, whose business has been taken by the few who have an office in the port, but then again, having seen the scams some of them have tried in the past, stuff 'em. Take the easy option!
Travel safe, take a leap of faith and enjoy the challenge,
Simon