BUG: Timestamp.unit now reflects changes in components after Timestamp.replace
- [x] closes #57749
- [x] [Tests added and passed]
- [x] All [code checks passed]
- [x] Added an entry in the latest `doc/source/whatsnew/v3.0.0.rst`

The logic behind this is having the `Timestamp.unit` set as the most precise unit changed on `Timestamp.replace` if one is more precise than the previous set. 

Hey, I've made the requested changes.

cc @jbrockmendel  @jbrockmendel @mroeschke Hey!! Sorry for the ping but it's been a while since I last heard from you, is this change still of interest?

Let me know If you need anything from me :) @jbrockmendel  I see you made a change on this files recently, does this still work as intended?
I haven't heard from you in a while. Is this still on track to be merged? Hey @mroeschke after speaking with him it is of my understanding that @jbrockmendel is taking some time mostly-off contributing for pandas, he indicated that you might be able to review this in the meantime? thanks in advance Could you add a test like

```python
ts = pd.Timestamp(year=2020, month=1, day=1, nanosecond=5)
result = ts.replace(nanosecond=0)
assert result.unit == "s"
``` @mroeschke In fact that logic was not yet implemented, thank you for noticing! I have attempted to solve the issue by registering if a replacement with 0 was made and if so add an extra check to recalculate the replacement resolution. The test now passes successfully. @mroeschke Hey, I've added the test cases requested!! Had to change some things in the logic but I believe it's working as intended now. Thanks for the pull request, but it appears to have gone stale. If interested in continuing, please merge in the main branch, address any review comments and/or failing tests, and we can reopen.