Unity Documentation: AssetBundle.Unload
When unloadAllLoadedObjects is false, compressed file data for assets inside the bundle will be unloaded, but any actual objects already loaded from this bundle will be kept intact. Of course you won't be able to load any more objects from this bundle.
When unloadAllLoadedObjects is true, all objects that were loaded from this bundle will be destroyed as well. If there are game objects in your scene referencing those assets, the references to them will become missing.
In your case, you want to use
This will destroy the loaded assets, but keep intact the already created GameObjects.
These being just GameObjects, you can destroy them at any later time using Object.Destroy.
public static void Destroy(Object obj, float t = 0.0F);
PS: You should take a look at Resources.UnloadUnusedAssets too.
As the function name implies, it Unloads assets that are not used.
An asset is deemed to be unused if it isn't reached after walking the whole game object hierarchy, including script components. Static variables are also examined.