Doublets from Norman vs. standard (often later) French

The dates after the loanwords are dates of first attestation from the OED.

"c" vs. "ch"

The "c" (or "k") form is from Norman French; the "ch" form is from standard French.

"w" vs. "g"

The "w" form is from Norman French; the "g" form is from standard French. These words were originally borrowed in French from Germanic (the "w" is a giveaway). In Norman French, the "w" remained unchanged, but in the dialects ancestral to standard French, the "w" changed to "gw" and then to "g". (https://en.wikipedia.org/wiki/History_of_French#Effect_of_substrate_and_superstrate_languages)

Loss of "s"

The "s" form is from early Old French (including Norman French); the form without "s" is from later French, where "s" between a preceding vowel and a following consonant first weakened to "h" (as in many other varieties of Romance) and was then lost entirely. This weakening and loss occurred in Late Old French (approx. 1250-1300) (https://en.wikipedia.org/wiki/Phonological_history_of_French#Table_of_vowel_outcomes). Standard French orthography preserves the memory of the "s" with a circumflex accent over the vowel. In English, the accent is usually omitted nowadays, but I've kept it here for clarity.

Other