بنظرم کد زیر برای تغییر فونت ارقام به صورت خودکار بدون هیچ مشکلی کار میکند. اشکال راه قبل این بود که فراموش شده بود تا قلم مورد نظر در محدوده خاصی اعمال شود.
\documentclass{article}
\usepackage{setspace}
\usepackage{xepersian}
\settextfont{Tahoma}
\defpersianfont\yasfont{Yas}
\makeatletter
\if@bidi@csundef{bidi@digits}{%
\newcount\bidi@digits
\XeTeXinterchartokenstate=\@ne
\newXeTeXintercharclass\bidi@digits@charclass
\bidi@digits=`\0 \loop \XeTeXcharclass \bidi@digits \bidi@digits@charclass \ifnum\bidi@digits<`\9 \advance\bidi@digits \@ne \repeat
\bidi@digits=`\۰ \loop \XeTeXcharclass \bidi@digits \bidi@digits@charclass \ifnum\bidi@digits<`\۹ \advance\bidi@digits \@ne \repeat
}{}
\newif\if@q@verbatim
\bidi@appto\verbatim@font{\@q@verbatimtrue}
\bidi@appto\ttfamily{\@q@verbatimtrue}
\newXeTeXintercharclass\q@leftparen@charclass
\newXeTeXintercharclass\q@rightparen@charclass
\XeTeXcharclass `\( \q@leftparen@charclass
\XeTeXcharclass `\) \q@rightparen@charclass
\XeTeXcharclass `\[ \q@leftparen@charclass
\XeTeXcharclass `\] \q@rightparen@charclass
\XeTeXcharclass `\{ \q@leftparen@charclass
\XeTeXcharclass `\} \q@rightparen@charclass
\XeTeXcharclass `\« \q@leftparen@charclass
\XeTeXcharclass `\» \q@rightparen@charclass
\XeTeXcharclass `\\ \q@rightparen@charclass
\XeTeXcharclass `\، \q@leftparen@charclass
\XeTeXcharclass `\, \q@leftparen@charclass
\XeTeXcharclass `\؛ \q@leftparen@charclass
\XeTeXcharclass `\; \q@leftparen@charclass
\XeTeXcharclass `\: \q@leftparen@charclass
\XeTeXcharclass `\. \q@leftparen@charclass
\XeTeXcharclass `\- \q@leftparen@charclass
\ifdim\the\XeTeXversion\XeTeXrevision\p@>0.99993\p@
\chardef\q@alloc@intercharclass@top=4095
\else
\chardef\q@alloc@intercharclass@top=255
\fi
\chardef\q@CharNormal=0
\XeTeXinterchartoks \q@alloc@intercharclass@top \bidi@digits@charclass = {\BeginSwitchDigitFont}
\XeTeXinterchartoks \bidi@digits@charclass \q@alloc@intercharclass@top = {\EndSwitchDigitFont}
\XeTeXinterchartoks \q@leftparen@charclass \bidi@digits@charclass = {\BeginSwitchDigitFont}
\XeTeXinterchartoks \bidi@digits@charclass \q@rightparen@charclass = {\EndSwitchDigitFont}
\XeTeXinterchartoks \q@rightparen@charclass \bidi@digits@charclass = {\BeginSwitchDigitFont}
\XeTeXinterchartoks \bidi@digits@charclass \q@leftparen@charclass = {\EndSwitchDigitFont}
\XeTeXinterchartoks \q@CharNormal \bidi@digits@charclass = {\BeginSwitchDigitFont}
\XeTeXinterchartoks \bidi@digits@charclass \q@CharNormal = {\EndSwitchDigitFont}
\if@bidi@csundef{if@nonlatin}{%
\newcommand*{\BeginSwitchDigitFont}{\if@q@verbatim\else%
\global\edef\currentfont{\the\font}\if@Latin\else\bgroup\yasfont \fi\fi}
\newcommand*{\EndSwitchDigitFont}{\if@q@verbatim\else\if@Latin\else\egroup\currentfont \fi\fi}
}{%
\newcommand*{\BeginSwitchDigitFont}{\if@q@verbatim\else%
\global\edef\currentfont{\the\font}\if@nonlatin\bgroup\yasfont \fi\fi}
\newcommand*{\EndSwitchDigitFont}{\if@q@verbatim\else\if@nonlatin\egroup\currentfont \fi\fi}
}\makeatother
\def\test{\small}
\begin{document}
%\show\normalsize
سلام )۲ خدانگهدار ۰۹۸۷۸
{\par گفت ۳: ۳4 143 من کتاب دارم. }
\begin{equation}
123 x + y 10010
\end{equation}
$1210$
90000
\begin{equation}
12
\end{equation}
\[
12010
\]
TeXLive2015
A09456
102030405060708090100
10,20,30,40,50,60,70,80,90,100 10، ۰،
دارای ۴ خط دستور است، ابتدا خط ۱، بعد خط ۲، بعد خط ۳ و در آخر، خط ۴.7080[1020](3040)
\verb!\ali1!\verb!chapter1!
\doublespacing
پانویس\footnote{این یک خط \lr{A4} است و پس 3. بارای
و 2 , و 3,4, 5 و ۴۵ ست و این متنی دیگر است. }
\verb!\include{chapter1}a1! یک متن
\verb!\include[1]{chapter1}a1! یک متن
\lr{include\{chapter[1]\}a1}
include[1]{chapter1}a1
{\yasfont [1030]} [10[20[30[40]50]60]70](10(20(30(40)50)60)70)
این یک خط A4 است و سپس a3. بارای
2, 3,4, 5 ۴۵
\begin{verbatim}
hi this is 234 test [asdf 14123]
\end{verbatim}
\begin{LTR}
\begin{verbatim}
hi this is 234 test [asdf 14123]
\end{verbatim}
\end{LTR}
\begin{latin}
\begin{thebibliography}{9}
\bibitem{Gonzalez02book}
Gonzalez, R.C., and Woods, R.E. {\em Digital Image Processing}, 3rd ed.,
Prentice-Hall, Inc., Upper Saddle River, NJ, USA, 2006.
\end{thebibliography}
\end{latin}
\end{document}