Ok, I think I solved my write to file problem. The trick is you need to have a buffer of a size 1 more than you really need and write it. Then seek to the end of file - 1 to write your next chunk of data. Here's an example that works assuming you've already opened a file:
u8 txt[1001]; // filled with whatever data
u32 cnt; // byte counter for filling the txt variable
if(cnt == 1000)
{
cr = FS_WriteFile(&file_info, &txt[0] , &successcount, cnt + 1);
FS_Seek(&file_info, file_info.filelen - 1 );
cnt = 0;
}