### 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)

}
		while (header_bytes < 8 && header_bytes % 4 != 0) { 
			header[header_bytes++] = 0;
		}
		for (uint32_t i = 0; i < header_bytes; i++) {
			data.push_back(header[i]);
		}
		if (temp_packets.size() == 1) {
			temp_packets.clear();
			validated_packet_count = 0;
			return; 
		}
		uint32_t bit_buffer = 0;
		uint32_t bits_used = 0;
		for (uint32_t i = 1; i < temp_packets.size(); i++) {
			uint32_t frame_delta = temp_packets[i].frame - temp_packets[i - 1].frame;
			_push_bits(data, bit_buffer, bits_used, frame_delta, max_frame_delta_shift);
			for (uint32_t j = 0; j < components; j++) {
				if (max_shifts[j] == 0) {
					continue; 
				}
				int32_t delta = _compute_delta16_signed(temp_packets[i - 1].data[j], temp_packets[i].data[j]);
				ERR_FAIL_COND(delta < -32768 || delta > 32767); 
				uint16_t deltau;
				if (delta < 0) {
					deltau = (ABS(delta) - 1) | (1 << max_shifts[j]);
				} else {
					deltau = delta;
				}
				_push_bits(data, bit_buffer, bits_used, deltau, max_shifts[j] + 1);