have a knowledge of= know
have much knowledge of= know well
B is wrong.
I would pick D.
The grammar is OK, but the meaning is wrong. You don't want an assistant with 'an experience' in the office. That means just one experience which is useless as an assistant. You want an assistant with many experiences or simply 'experience' in the office.