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

int size = get_datatype_size(uniform.type) * uniform.array_size;
									int m = (16 * uniform.array_size);
									if ((size % m) != 0U) {
										size += m - (size % m);
									}
									uniform_buffer_size += size;
								} else {
									uniform_buffer_size += get_datatype_size(uniform.type);
								}
								if (uniform_buffer_exceeded_line == -1 && uniform_buffer_size > max_uniform_buffer_size) {
									uniform_buffer_exceeded_line = tk_line;
								}
							}
#endif 
						}
					}
					if (uniform.array_size > 0) {
						if (uniform_scope == ShaderNode::Uniform::SCOPE_GLOBAL) {
							_set_error(vformat(RTR("The '%s' qualifier is not supported for uniform arrays."), "SCOPE_GLOBAL"));
							return ERR_PARSE_ERROR;
						}
						if (uniform_scope == ShaderNode::Uniform::SCOPE_INSTANCE) {
							_set_error(vformat(RTR("The '%s' qualifier is not supported for uniform arrays."), "SCOPE_INSTANCE"));
							return ERR_PARSE_ERROR;
						}
					}
					int custom_instance_index = -1;
					if (tk.type == TK_COLON) {
						completion_type = COMPLETION_HINT;
						completion_base = type;