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

if (identifier == StringName()) {
					_set_error(RTR("Expected an identifier as a member."));
					return nullptr;
				}
				String ident = identifier;
				bool ok = true;
				bool repeated = false;
				DataType member_type = TYPE_VOID;
				StringName member_struct_name = "";
				int array_size = 0;
				RBSet<char> position_symbols;
				RBSet<char> color_symbols;
				RBSet<char> texture_symbols;
				bool mix_error = false;
				switch (dt) {
					case TYPE_STRUCT: {
						ok = false;
						String member_name = String(ident.ptr());
						if (shader->structs.has(st)) {
							StructNode *n = shader->structs[st].shader_struct;
							for (const MemberNode *E : n->members) {
								if (String(E->name) == member_name) {
									member_type = E->datatype;
									array_size = E->array_size;
									if (member_type == TYPE_STRUCT) {
										member_struct_name = E->struct_name;
									}
									ok = true;
									break;
								}