I believe I have found a bug in MFS (shipped with MQX 220.127.116.11).
In MFS shipped with MQX 4.0.1 the call to MFS_Read and MFS_Write is made with the file pointer, and the location is advanced as it should be.
In MFS shipped with MQX 18.104.22.168 the call to MFS_Read and MFS_Write is made using the MFS_HANDLE pointer, which contains a different location (which is updated), but the location in the file pointer is not.
This breaks the ftell functionality.
Add the following line of code:
file_ptr->LOCATION = handle->LOCATION;
at line 710 and 811 of mfs_init.c
This seems to fix the problem for me.