All your sentences are grammatically correct. However, the different tenses convey slightly different messages.
"She did not write the letter" is in the past simple tense. This means it talks about the something that happened (or did not happen) in the past. It may suggest that someone wrote the letter, but it wasn't her; she did not.
"She has not written the letter" is present perfect. It can be thought of as a statement about the present: something is, or isn't, complete (perfect). In this case, the present condition "she has completed writing the letter" is negated, so it suggests that the letter is not written. Maybe it is not written yet or she never had any intention of writing it. In cases where the completion is the main message, using present perfect can focus on it.
Adding more information such as "till now" may clarify your message. "Till now" suggests that you are talking about completion. But a statement in past simple can still focus on other things; you could say "she didn't write the letter till now, she finished writing it yesterday!". In this case the time frame is negated, not the completion. (This may be an unlikely statement to make, but similar statements are possible...)
To sum up, if you want to focus your message at completion, you would do better with present perfect. But "she did not write the letter till now" is absolutely correct and people will most likely understand your intent.