The original UNIX was created at AT&T. They made an OS to work on text processing, but couldn't sell it due to some restrictions they were under. Since they couldn't sell it, they were somewhat generous in allowing universities access to the source tapes. Several Unis made changes, with the most famous being the University of California at Berkeley, (a.k.a. UCB) which released changes as the Berkeley Software Distribution, or BSD. The BSD variant of UNIX made several important additions to what's called UNIX, including the Virtual Memory model, BSD sockets (think TCP/IP), vi, and CSH - the first shell designed for interactive use.
BSD UNIX had started as patches to the AT&T UNIX code. The Berkeley folks cleaned up and purged the AT&T code, and the AT&T-copyright-free BSD source was eventually released. This spawned 386BSD, which then spawned NetBSD, FreeBSD, OpenBSD, and FireflyBSD (and others). Eventually, the AT&T and BSD code bases were pulled into "Official UNIX" and this was called SVR4.
The MacOS X Darwin kernel is based on elements of NetBSD and FreeBSD, and also some Mach code. You can say that it's a UNIX, it has a code lineage through UC Berkeley all the way to the original AT&T.
But what does UNIX mean? Is it a lineage back to AT&T? If so, BSD qualifies, as does Solaris, and a bunch of others. Is it an API that you can run UNIX code on? Then those qualify, as does Linux which is a write from scratch to the UNIX api corpus. For most code, Cygwin would qualify as a target for UNIX code so its a UNIX also, even though it runs on top of the Windows kernel and the UNIX "kernel" is a DLL in user space. Is it a badge you can slap on your box? If so, Apple finally paid the cash for it in Leopard. Hmm, But Microsoft paid for that badge for the Windows NT4 POSIX subsystem. Yes, Windows NT was badged "UNIX" before Solaris was. Yet, NetBSD which is a direct descendant of UNIX sources, has never paid for that badge, and doesn't call itself UNIX.
As far as bash, I wouldn't use the GNU thing as a standard as whether Mac OS X is UNIX. bash is common on UNIX platforms (and IIRC having bash is one of the requirements for SVR4 UNIX) but can be ported to non-UNIX ones as well. The 'GNU's not UNIX thing' is more about the GNU Hurd, which was supposed to be a competitor to UNIX in the operating system space. The Hurd was supposed to be a microkernel that could do wonderful things as well as run UNIX code. The Hurd kernel hasn't done much, but having the Hurd goal has spawned a huge amount of incredibly useful software that runs on UNIX, including bash, emacs, gcc, and many others.