You call assign(DefaultItem) two times when creating a new item.
First time in
constructor TPlannerItem.Create(Collection: TCollection);
...
if Assigned(FPlanner.DefaultItem) then
Self.Assign(FPlanner.DefaultItem);
...
Second Time in
function TPlannerItems.Add: TPlannerItem;
...
Result.Assign(FOwner.DefaultItem);
...
Please remove one.