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

CF_UNSPECIFIED = 0U,
	CF_BLOCK = 1U, 
	CF_FUNC_DECL_PARAM_SPEC = 2U, 
	CF_FUNC_DECL_PARAM_TYPE = 4U, 
	CF_IF_DECL = 8U, 
	CF_BOOLEAN = 16U, 
	CF_GLOBAL_SPACE = 32U, 
	CF_DATATYPE = 64U, 
	CF_UNIFORM_TYPE = 128U, 
	CF_VARYING_TYPE = 256U, 
	CF_PRECISION_MODIFIER = 512U, 
	CF_INTERPOLATION_QUALIFIER = 1024U, 
	CF_UNIFORM_KEYWORD = 2048U, 
	CF_CONST_KEYWORD = 4096U, 
	CF_UNIFORM_QUALIFIER = 8192U, 
	CF_SHADER_TYPE = 16384U, 
};
const uint32_t KCF_DATATYPE = CF_BLOCK | CF_GLOBAL_SPACE | CF_DATATYPE | CF_FUNC_DECL_PARAM_TYPE | CF_UNIFORM_TYPE;
const uint32_t KCF_SAMPLER_DATATYPE = CF_FUNC_DECL_PARAM_TYPE | CF_UNIFORM_TYPE;
const ShaderLanguage::KeyWord ShaderLanguage::keyword_list[] = {
	{ TK_TRUE, "true", CF_BLOCK | CF_IF_DECL | CF_BOOLEAN, {}, {} },
	{ TK_FALSE, "false", CF_BLOCK | CF_IF_DECL | CF_BOOLEAN, {}, {} },
	
	{ TK_TYPE_VOID, "void", CF_GLOBAL_SPACE, {}, {} },
	{ TK_TYPE_BOOL, "bool", KCF_DATATYPE, {}, {} },
	{ TK_TYPE_BVEC2, "bvec2", KCF_DATATYPE, {}, {} },
	{ TK_TYPE_BVEC3, "bvec3", KCF_DATATYPE, {}, {} },
	{ TK_TYPE_BVEC4, "bvec4", KCF_DATATYPE, {}, {} },
	{ TK_TYPE_INT, "int", KCF_DATATYPE, {}, {} },