Cleanup should get rid of those items whenever you reboot your shard, so don't worry too much about the bulk of them.
In a lot of cases, internal items are simply the cause of code that doesn't do anything with an item after it has been created.
Take for example this snippet:
public override void OnDeath( Container c )
{
base.OnDeath( c );
var item = new Longsword( );
c.TryDropItem( item );
}
TryDropItem has a chance to fail, so nothing actually gets done with the item.
Because it's not checked for failure and doesn't explicitly delete the item, that item will stay on the Internal map at 0,0,0
The above is purely an example scenario and is unlikely to be in any actual code you have.
In the case of Oil Cloths, Lockpicks, etc, I would search the entire code base to see where those items are used and created.
It sounds like a big job, but there probably aren't very many places referencing OilCloths in the code, so once you can identify these references, you can identify why the items are ending up on the Internal map.