### Tested versions

- Reproducible in: v4.2.stable.official [46dc27791]
- Not reproducible in: v4.1.3.stable

### System information

Godot v4.2.stable - Windows 10.0.22621 - Vulkan (Forward+) - dedicated AMD Radeon RX 6600 (Advanced Micro Devices, Inc.; 31.0.21023.2010) - AMD Ryzen 7 5700X 8-Core Processor (16 Threads)

### Issue description

Starting with Godot 4.2, changing a Control node's anchor offsets with an AnimationPlayer node results in the offsets "snapping" to the keyframes, as if Nearest interpolation were used. 

This only applies to the Linear Interpolation Mode; Cubic still works as expected.

![resize_interp_fail](https://github.com/godotengine/godot/assets/26508550/a10a973f-afdc-45f2-986c-594aa3cdc9dc)

I encountered this regression when upgrading my project from 4.1.3 to 4.2. Minimum reproduction project provided below.

### Steps to reproduce

- Create a Control node with a Custom anchor preset.
- Create an AnimationPlayer track for one or more of its anchor offsets, with the Continuous update mode and Linear interpolation.
- Add keyframes to track(s)
- Play animation (either in the editor or in-game)

### Minimal reproduction project (MRP)

[ControlResize.zip](https://github.com/godotengine/godot/files/13589517/ControlResize.zip)

int64_t count = vcount / SCALE_TRACK_SIZE;
				st->scales.resize(count);
				TKey<Vector3> *sw = st->scales.ptrw();
				for (int i = 0; i < count; i++) {
					TKey<Vector3> &sk = sw[i];
					const real_t *ofs = &r[i * SCALE_TRACK_SIZE];
					sk.time = ofs[0];
					sk.transition = ofs[1];
					sk.value.x = ofs[2];
					sk.value.y = ofs[3];
					sk.value.z = ofs[4];
				}
			} else if (track_get_type(track) == TYPE_BLEND_SHAPE) {
				BlendShapeTrack *st = static_cast<BlendShapeTrack *>(tracks[track]);
				Vector<real_t> values = p_value;
				int vcount = values.size();
				ERR_FAIL_COND_V(vcount % BLEND_SHAPE_TRACK_SIZE, false);
				const real_t *r = values.ptr();
				int64_t count = vcount / BLEND_SHAPE_TRACK_SIZE;
				st->blend_shapes.resize(count);
				TKey<float> *sw = st->blend_shapes.ptrw();
				for (int i = 0; i < count; i++) {
					TKey<float> &sk = sw[i];
					const real_t *ofs = &r[i * BLEND_SHAPE_TRACK_SIZE];
					sk.time = ofs[0];
					sk.transition = ofs[1];
					sk.value = ofs[2];
				}
			} else if (track_get_type(track) == TYPE_VALUE) {
				ValueTrack *vt = static_cast<ValueTrack *>(tracks[track]);