FYI, "hidden" Windows shares aren't hidden for security purposes; they're hidden for organizational reasons. In other words, in a situation where a server had a lot of unique user shares, users don't need to see all of the other users on the network's private shares, they only need to see their own. Hence, one would make the user accounts hidden shares and map them all as links or drives on the client systems. If you tried to use hidden shares as a security measure, I think you'd find it'd only protect against casual users and not even the most uneducated of attacker; it is trivial to index a Windows system's hidden shares.
If you'd like my advice, I freely give it. It seems to me that your setup may be more complicated than it needs to be, and could be prone to a lot of problems and administrative overhead. Otherwise, it will work. But if I were to find myself in your position, I would without a second thought setup a single, centralized server with a RAID array which would hold all of the shared files and profiles for your users. This system would also be responsible for handling user privileges, directory services (think shared address book), authentication and group profiles. You can certainly do this with a Windows server, but personaly I favor Linux for important server functions, especially if budget is a factor since it costs nothing for neither the OS nor the client licenses. You could actually use
SME Server, a free operating system based on Linux which is easy to setup and manage, performs extremely well, is very secure, and has almost no administrative overhead. It also has a lot of cool features like secure mail (POP, SMTP, IMAP, webmail), LDAP (directory services), Windows domain authentication, Appletalk compatibility, VPN tunneling, and a lot more. It can even act as the firewall for your network if needs be. Whether you used the extra features or not would of course be up to you, but the Windows file & print sharing capability is excellent, and actually performs substantially better than an actual Windows server in the same role. Perhaps the best part is that the client systems cannot tell the difference between a Windows server and a Linux server acting as a Windows server, so to your users it is totally transparent.
Hope this has been helpful...