A retract of a finitely generated free monoid is free even though submonoids need not be free. I don't know about the infinitely generated case.
Edit: infinitely generated seems ok. The fg case I saw in an automata theory book but I see a general proof.
Added: here is the proof. Let P be a projective monoid (retract of free). Since it is a submonoid of a free monoid it has a unique minimal generating set Y consisting of the elements which are irreducible. Consider the map from the free monoid on Y to P sending generator to generator. Since P is projective it must split. But since elements of Y are irreducible their only preimages are the corresponding generators in the free monoid. Thus the splitting is an inverse to the projection.