Has anyone seen a similar issue before? Am I using it wrong?
Does the spriteFont object assume that characters have a space between them (most Arabic letters connect together). Any help on this is highly appreciated.
You are right, SpriteFonts need padding or spaces of 1 or 2 pixels between the characters or you get problems with the anti-aliasing. You can set the width of any character individual, if the spacing make a gap after the character in the text. Use the action: set character width.
For example if you want an 'i' smaller than the rest of the characters from start of your program:
System | On start of layout->SpriteFont|Set character width to 'any width you want' for "i"
'any width you want' is the width you want