The 'create object' action sets the picked objects to just the created object.
Sub-events inherit the parent event's picked objects, so the subevent inherits a single Sprite (the last created one).
For-each only iterates the currently picked objects, so it runs once for that last created sprite. (In this case you don't need a for-each, it has no effect - actions naturally run "for each" picked object. You only need a for-each when this built-in behavior does not do what you want.)
To fix it, make a second 'start of layout' event that just has 'wait 5 seconds' then 'destroy Sprite'. That event has a blank slate for picked objects, so all sprites are destroyed.