It only works perfectly if (1) the heights of all headers are the same, (2) you can predict what that height is at design time, and (3) it doesn't change.
On Android, the height of each individual header adjust to the size of its contents. It needs to be the same on iOS. There is a bug report on this, but it's pretty old and doesn't appear to have been fixed. https://feedback.telerik.com/xamarin/1365964-listview-groupitemtemplate-does-not-respect-its-template-contents-in-ios-automatically