BUG: _validate_setitem_value fails to raise for PandasArray
- [ ] closes #51044
- [ ] [Tests added and passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#writing-tests) if fixing a bug or adding a new feature
- [ ] All [code checks passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#pre-commit).
- [ ] Added [type annotations](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#type-hints) to new arguments/methods/functions.
- [ ] Added an entry in the latest `doc/source/whatsnew/vX.X.X.rst` file if fixing a bug or adding a new feature.

@hvsesha thanks you for the work with this bug. I prefer to close this PR, as you have many changes that we don't want to merge here, including breaking the PEP-8 styles, adding files with your tests, changing default arguments of existing functions...

I see it's your first contribution, what I suggest is the same:
- You look in our code base where the tests for the function with the bug are
- You add a new test that catches the error
- You open a PR with the new test
- The test will fail, and the CI will be green
- Once we reached this milestone, you implement a fix for the bug, without adding new files, or modifying the signature of existing functions unless strictly required

You can ping me at any point of this if you need help. I think doing things step by step will make things easier both for you, and for reviewers.

Also, you shouldn't open PRs directly from the `main` branch, you should create a new branch specific to this PR.