From a design perspective, I'm not sure whether them should update accordingly or remain unchanged, but the current behavior is definitely problematic.
from unyt import unyt_array as YTArray
arr = YTArray([1,2,3,4],"m")
arr_slice = arr[:2]
print(arr) # [1,2,3,4] m
print(arr_slice) # [1,2] m
arr[0] = 5
print(arr) # [5,2,3,4] m
print(arr_slice) # [5,2] m
arr.convert_to_units("cm")
print(arr) # [500,200,300,400] cm
print(arr_slice) # [random,numbers] m
arr = YTArray([1,2,3,4],"m")
arr_slice = arr[:2]
arr_slice[0] = 5
print(arr_slice) # [5,2] m
print(arr) # [5,2,3,4] m
arr_slice.convert_to_units("cm")
print(arr_slice) # [500,200] cm
print(arr) # [random,numbers,3,4] m