Gaff can speak English, but he chooses not to.
Indeed, as the OP mentioned, it is quite impossible that Gaff would learn English in a matter of a few days. Moreover, in the original book, Gaff has a slightly bigger role, and he converses quite a bit with Deckard about his job.
So why doesn't he use English?
Well, most likely because he initially dislikes Deckard and to show that he is better than him: The 'Cityspeak' is used by the criminal underworld, so by using it Gaff shows that he is a "professional cop", who is knowledgableknowledgeable about the dangerous parts of the city. But instead of being assigned to chase the missing replicants, his boss — Bryant — sends him as an errand boy to pick up some washed-up ex-Blade Runner.
Also, as @PoloHoleSet mentioned in comments, Deckard most likely understands perfectly Gaff, but decided to be a pain in the butt and play dumb.