I´m sorry.....
I got no 4 line Display myself for a short test.
As i know sebastian himself also got just 1-2 Testing Displays and include this Code Part just from scratch without testing every possible Display.
For me your picture show me a "logical" Problem.....
The follow Idea is "strange"

but maby working.
Line 1 and Line 2 looks good ( 16 characters)
Line 3 and Line 4 "start" on Position 5 and have 4 empty diggits to the Left .
So if for example the Display Controller is a 20x4 ( Whatever it have only 16x4 Diggits) and is seperated to 1/3 and 2/4 Line this can be logical.....
In that case Line 1 and Line 3 "Share" maby a Dataline ..... Mobiflight send only 16 chars..... But Display want 20 ( 16 For first line and 4 for 3rd line left side )
The Data Line for Line 3 then include just 12 Chars finaly ( 8 empty on the Right) cause the first 4 are already done by Line 1.
**************
Please make a Test:
Use in Display Tab a Logical Test Line. Write in Line 1 1234567890ABCDEF In Line 2 Write GHIJKLMNOPQRTUVW
Or you can make a simple text like "Hi-My-Name-Is- Donald-Duck-and- I- Love -Micky-Mouse"
Important is... You must have a Data you can simply check where a Digit SHOULD be.... and Where it is fianly on Display.
So simply fill up the WHOLE Display Space with characters so you see what happend finaly.
Maby then you see a logic that the 4 Empty Diggits are for example the Data on a other Spot.
Finaly make a testing with a other Setup.... For example 20x4 in Mobiflight ......
Test again with a Text..... Then you see if Cahr 1-4 on Line 3 is maby simply the Data from Char 17-20 of Line 1 now.
*****************
Summary..... I think some Controllers on that LCD work different to the logic of the Library we use on Arduino. Here we must use a basicly wrong setting to get a basicly correct result.