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

data_tracks[i].validated_packet_count = -1;
						time_tracks[i].needs_start_frame = true; 
						time_tracks[i].packets.clear();
						time_tracks[i].validated_key_index = -1;
						time_tracks[i].validated_packet_count = 0;
					}
				}
				Compression::Page page;
				page.data = page_data;
				page.time_offset = base_page_frame * frame_len;
				compression.pages.push_back(page);
				if (!rollback && best_invalid_frame == FRAME_MAX) {
					break; 
				}
				current_frame = page_end_frame;
				base_page_frame = page_end_frame;
				continue; 
			}
		}
		
		uint32_t comp_track = best_frame_track;
		Vector3i values;
		if (start_frame) {
			
			values = _compress_key(tracks_to_compress[comp_track], track_bounds[comp_track], -1, base_page_frame * frame_len);
		} else {
			uint32_t key = time_tracks[comp_track].key_index;
			values = _compress_key(tracks_to_compress[comp_track], track_bounds[comp_track], key);
			time_tracks[comp_track].key_index++; 
		}