چون می گید که بار اول درست نشون می ده و بعد از ذخیره کردن و بازیابی مشکل پیش می یاد احتمالا مشکل تو همون ذخیره و بازیابی از recordStore شماست. و فرقی هم نمی کنه که کارکتر فارسی ذخیره کنید یا انگلیسی.
پیشنهاد می کنم این جوری این کار رو انجام بدید(البته شایدم همین طوری انجام داده باشید!)
String farsiText = "farsi text!";
byte[] farsiBytes = farsiText.getBytes();
بعد farsiBytes رو ذخیره کنید. و برای بازیابی وقتی بایت ها رو گرفتید اینجوری به string تبدیلش کنید:
String farsiText2 = new String(farsiBytes2);
بعدم چاپش کنید ببینید چی می شه.