### Godot version

v4.1.dev.custom_build.a7276f1ce

### System information

Win10, AMD 2600, GeForce GTX 1060, Vulkan API 1.3.205

### Issue description

I can't get correct color data from an array of source_color type.
The color data is saved as **Color** in the file:
`shader_parameter/palette = [Color (1, 0, 0, 1), Color (0, 1, 0, 1), Color (0, 0, 1, 1)]`
Shouldn't it be saved as PackedColorArray?


### Steps to reproduce

1.Declare an array of source_color type.
2.Set colors.

### Minimal reproduction project

[shadertest.zip](https://github.com/godotengine/godot/files/11246504/shadertest.zip)

gui[5] = v.rows[1][1];
				gui[6] = v.rows[2][1];
				gui[7] = 0; 
				gui[8] = v.rows[0][2];
				gui[9] = v.rows[1][2];
				gui[10] = v.rows[2][2];
				gui[11] = 0; 
			}
		} break;
		case ShaderLanguage::TYPE_MAT4: {
			float *gui = (float *)data;
			if (p_array_size > 0) {
				const PackedFloat32Array &a = value;
				int s = a.size();
				for (int i = 0; i < p_array_size * 16; i += 16) {
					if (i + 15 < s) {
						gui[i] = a[i];
						gui[i + 1] = a[i + 1];
						gui[i + 2] = a[i + 2];
						gui[i + 3] = a[i + 3];
						gui[i + 4] = a[i + 4];
						gui[i + 5] = a[i + 5];
						gui[i + 6] = a[i + 6];
						gui[i + 7] = a[i + 7];
						gui[i + 8] = a[i + 8];
						gui[i + 9] = a[i + 9];
						gui[i + 10] = a[i + 10];
						gui[i + 11] = a[i + 11];
						gui[i + 12] = a[i + 12];
						gui[i + 13] = a[i + 13];