You should not use normal text directly in math mode, the English text will be treated as math and set in math italic (by default) with math spacing and so on, while other scripts will not be shown at all since default math fonts have only Latin (and some Greek also for math).
Instead you should set inside \text{} from amsmath, eg:
\documentclass{article} % normal
\usepackage{fontspec}
\usepackage{amstext, amsmath}
\setmainfont[Script=Devanagari]{Sanskrit2003}
\begin{document}
$ A\xleftarrow{n+\mu-1}B \xrightarrow[T]{n\pm i-1}C $ \\
$ \text{आज}\xleftarrow{\text{कल}}\text{अ} \xrightarrow{\text{पर्सो}}\text{तलवार} $
\end{document}
Also there are many issues with your preamble:
\usepackage[utf8x]{inputenc} makes no sense with xelatex, remove it.
\usepackage{fontenc} you don't need that one either
\usepackage{microtype} current versions of microtype does not support xetex, so this one does nothing.
\usepackage{unicode-math} & \setmathfont{Sanskrit2003} makes no sense too, unicode-math needs special OpenType math fonts and only Latin and Greek math are supported, so \setmathfont{Sanskrit2003} will just give you broken math (and using unicode-math without setting a math font is even more broken.)
Not sure about the rest, but it would be better to make sure you actually need them in your document.
\mbox{}? – Willie Wong Nov 20 '10 at 16:43inputenc,fontspecandfontencin the same document. What happens if you excludeinputencandfontenc? – Mikael Vejdemo-Johansson Nov 20 '10 at 18:11