### Godot version

4.0.beta17

### System information

windows 10, nvidia graphics

### Issue description

When creating a typed array from another base array, if the base array was gotten from get_tree().get_nodes_in_group(), you cannot create a typed array assigning a script different from null, otherwise the resulting array will be filled with nulls.

![image](https://user-images.githubusercontent.com/5783414/216142311-1eded30c-e8ff-4a2b-aa5a-61ae5cafce13.png)


### Steps to reproduce

See attached video:

https://user-images.githubusercontent.com/5783414/216142187-82af9900-d490-4d6d-b4cc-9d776d8b8cc9.mp4



### Minimal reproduction project

[TypedArrayConstructorDoesntWorkWithScriptsWhenUsingGetNodesInGroup.zip](https://github.com/godotengine/godot/files/10560863/TypedArrayConstructorDoesntWorkWithScriptsWhenUsingGetNodesInGroup.zip)

### WorkAround

Instead of using the output of get_tree().get_nodes_in_group() directly, the user can join it with an empty array
```gdscript
[]+get_tree().get_nodes_in_group()
```
and it will work as expected.
public:
	SafeRefCount refcount;
	Vector<Variant> array;
	Variant *read_only = nullptr; 
	ContainerTypeValidate typed;
};
void Array::_ref(const Array &p_from) const {
	ArrayPrivate *_fp = p_from._p;
	ERR_FAIL_COND(!_fp); 
	if (_fp == _p) {
		return; 
	}
	bool success = _fp->refcount.ref();
	ERR_FAIL_COND(!success); 
	_unref();
	_p = _fp;
}
void Array::_unref() const {
	if (!_p) {
		return;
	}
	if (_p->refcount.unref()) {
		if (_p->read_only) {
			memdelete(_p->read_only);
		}
		memdelete(_p);
	}
	_p = nullptr;
}
Variant &Array::operator[](int p_idx) {