The MoveItem() function creates a brand new item stack, so any special item data except for quality will be deleted.
This can include equipment inside armour, or more crucially, spoilage.
You can access the LuaItemStack objects by indexing the LuaTransportLine directly like you would an array (line[1] is the front-most item).
Also slightly related, items stacked using Stack inserters will be unstacked by the Smart Splitter and sorted individually (but they all make it through okay) - I'm not sure if this deliberate.
insert_at_back has a second argument, belt_stack_size, for dealing with these.