Is it possible to add my own custom "words" as grammer, and can I train the engine to recognise it?
Is this a dictation experience, or a command & control experience? If it's dictation, you can add words using the ISpLexicon interface (or use the Windows Speech Recognition Speech Dictionary).
For command & control, the words are implicit as part of the grammar. If the word has an unusual pronunciation, you can explicitly declare the pronunciation as part of the token, using the Display/Lexical/Pronunciation format or the PRON attribute.