BUG:  set value with iloc and list like indexer
- [ ] closes #xxxx
- [ ] tests added / passed
- [ ] passes `black pandas`
- [ ] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

> what issue is this closing? this would need a test; i am not sure why you think this needs changing.

It's for #36741 , might not be the place to start, that's why its draft @jbrockmendel this seems to work, but when the dtype of the new values changes this will return the wrong dtype. For example (see example below), although the values will be correct. So it will solve the problem of the reference issue.
```python
df_orig = DataFrame(
    [["1", "2", "3", ".4", 5, 6.0, "foo"]], columns=list("ABCDEFG")
)

df = df_orig.copy()
df.iloc[:, 0:2] = df.iloc[:, 0:2].astype(np.int64)
expected = DataFrame(
    [[1, 2, "3", ".4", 5, 6.0, "foo"]], columns=list("ABCDEFG")
)
tm.assert_frame_equal(df, expected)
```

Any ideas where I might look? supersed by #37432