If the ID of an object in your package is 2, with PRESERVE_KEYS, MODX will try to install it with its ID set to 2. If there's already an object of that type with that ID, you have a collision. In that case, I'm fairly certain that the object is not installed at all, though I've never tested it.
The only time you want PRESERVE_KEYS on is when you're installing to an empty site and want to make sure the related-object IDs are all correct (e.g., the 'parent' field of a resource really points to the parent you want). If it's not an empty site, you often want to find the parent by pagetitle and set the child's 'parent' field in a resolver. BTW, MyComponent handles all the relationships automatically by auto-creating the resolvers for you.
When you install objects in a package, they stay installed until the package is uninstalled. Installing a new package with fewer objects won't remove them. You can delete them manually, or you can do it in a resolver. For chunks, that would look like this:
$chunk = $modx->getObject('modChunk', array('name' => 'MyChunk'));
if ($chunk) {
$chunk->remove();
}