Если коротко - то в целом да, это нормальная практика. Когда вы в useWatch (да и в useSelector, useState) возвращаете объект, при изменении хотя бы одного из его (объекта) свойств считается что изменился весь объект (что в общем то логично). Если вам нужно остлеживать только одно свойство объекта - то ваш путь верный.
А чего вы хотите получить от сторонней сборки? Что за маниакальное мнение, что стороннее, лучше оригинального? Тут уже 100500 раз отвечали, ставьте оригинальные дистрибутивы!
Ваш код не смотрел :) но похожие ошибки происходят из-за наличия в сборке нескольких реактов. Смысл в том, что во всех библиотеках вам нужно исключить из сборки реакт, стор и прочие зависимости. Реакт, общий стор должны подключаться только в "итоговом" проекте, куда вы подключаете свои библиотеки. Для сборщика vite.js есть плагин rollup-plugin-auto-external - он решает подобные задачи. Использование rollup-plugin-auto-external уменьшает размер билда библиотеки в разы.
SQLpodavan228, тут ведь какое дело, на нативном js, css, html сейчас мало кто пишет. Если вы хотите развиваться профессионально, вы рано или поздно придёте к фреймворку. Попробуйте, будет сложно, непонятно, значит вам пока рано.