I cannot reproduce any memory leak with that code, but I can reproduce the caption issue. You need to add the item before changing its Caption:
var Item := TListItem.Create (ListView1.Items);
ListView1.Items.AddItem (Item); // <-- move here
Item.Caption := SomeLinkedObject.Name;
Item.Checked := SomeLinkedObject.Enabled;
Item.Data := SomeLinkedObject;
The reason is because setting the Caption assigns the LPSTR_TEXTCALLBACK flag on the item, which TListView needs to display the assigned String data, but AddItem() does not set that same flag. So, if you set the Caption and then Add, the flag is not set and the ListView has no text data to display. Looks like a bug, I have reported it:
RSS-3772: TListItems.AddItem() does not set LPSTR_TEXTCALLBACK flag for existing TListItem