[BUG] serializer does not work array of object
### Describe the bug

Since 7.36.0 version, if you have a custom type and it is used as an array within another object, it does not work, unless you annotate it with `@CollectionOf`

Here is an example of a controller:

```ts
@Controller("/")
export class HelloWorldController {
  @Get("/single")
  get() {
    const user = new User();
    user.id = new Id();
    user.name = 'test';
    
    return user;
  }

  @Get("/object")
  object() {
    const user1 = new User();
    user1.id = new Id();
    user1.name = 'user1';

    const user2 = new User();
    user2.id = new Id();
    user2.name = 'user2';
    
    return {
      user1,user2
    };
  }

  @Get("/list")
  list() {
    const user1 = new User();
    user1.id = new Id();
    user1.name = 'user1';

    const user2 = new User();
    user2.id = new Id();
    user2.name = 'user2';

    const list = new List();
    list.users.push(user1);
    list.users.push(user2);
    
    return list;
  }

  @Get("/collection")
  collection() {
    
    const user1 = new User();
    user1.id = new Id();
    user1.name = 'user1';

    const user2 = new User();
    user2.id = new Id();
    user2.name = 'user2';

    const collection = new Collection();
    collection.users.push(user1);
    collection.users.push(user2);
    
    return collection;
  }
}
```

with the objects being

```ts
function IdProperty() {
  return useDecorators(
    Property(String),
    OnDeserialize((id) => {
      console.log('OnDeserialize', id)
      if (id) {
          return new Id(id);
      }
    }),
    OnSerialize((id) => {
      console.log('onSerialize', id)
      if (id) {
        return id.getValue();
      }

      return null;
    }),
  );
}

export class Id {
    protected value: string;

    public constructor(id?: string) {
        if (id) {
            this.value = id;
        } else {
            this.value = uuid();
        }
    } 

    public getValue(): string {
        return this.value;
    }
  }

export class User {
    @IdProperty()
    id: Id;

    @Property()
    name: string;
}

class List {
  users: User[];

  constructor() {
    this.users = [];
  }
}

class Collection {
  @CollectionOf(User)
  users: User[];

  constructor() {
    this.users = [];
  }
}
```

The output of these 4 endpoints are:

```bash
❯ curl localhost:8083/single | jq .
{
  "id": "b6b05b6b-6cde-4b85-b00c-b1a4769ad774",
  "name": "test"
}

❯ curl localhost:8083/object | jq .
{
  "user1": {
    "id": "3312f798-d044-41e1-9c4a-b6e18e4d3cba",
    "name": "user1"
  },
  "user2": {
    "id": "7b1e6d5c-3548-4add-8d15-3bb1f40944b3",
    "name": "user2"
  }
}

❯ curl localhost:8083/list | jq .
{
  "users": [
    {
      "id": {
        "value": "3e6f86b8-5cde-47a8-9042-e2c102162994"
      },
      "name": "user1"
    },
    {
      "id": {
        "value": "fa70d1cc-348e-447c-a883-6a7207067166"
      },
      "name": "user2"
    }
  ]
}

❯ curl localhost:8083/collection | jq .
{
  "users": [
    {
      "id": "7aff92cf-4ea5-453c-89f4-c2f920f4439c",
      "name": "user1"
    },
    {
      "id": "d74704bc-85ad-4547-815e-07b0239cefa8",
      "name": "user2"
    }
  ]
}
```

### To Reproduce

Run the repo

### Expected behavior

I don't expect to see

```
"id": {
   "value": "3e6f86b8-5cde-47a8-9042-e2c102162994"
},
```

when it is nested

### Code snippets

_No response_

### Repository URL example

Run https://github.com/ktalebian/tsed-bug application

### OS

macOS

### Node version

Node 18

### Library version

7.44.0

### Additional context

_No response_