l() is printing "http://node/16" when gets "/node/16" as argument This site was copied to a new domain when it started breaking. Is there some setting somewhere I need to update, so it knows how to build working URLs again?
Pass node/16, instead of /node/16.

The API reference for l() tells you that the $path argument is passed to the url() function. url() considers "/node/16" as a full URL (although the term "full URL" is not formally defined).