Looks like you're pulling the items out into a separate SPListItemCollection
(which is better than looping, for performance reasons), and then creating
another new SPListItem from that collection, at which point you change the
value. You need to change the field value in the original instance of the
item, from the original list.
If necessary, get the ID of the item and then use GetItemByID (that might
not be the exact method name) to pull the SPListItem from the list and
update accordingly.