Right now, there's no single, good, known-working, cared-for source tree around. We'll probably manage to get the old sources updated to Linus's current version, but until then, only the old trees are available for reference.
The kernel needs a lot of forward-porting work. Once a number of important upstream changes are implemented, the rest shouldn't be too hard to do.
Current Binutils should probably work without any additional patches, unless you want to use VAX Vector stuff. That's not implemented.
GCC's current HEAD (as of SVN/GIT) seems to mostly work.
However, there are ICEs (Internal Compiler Errors)
occassionally, which need investigation and/or fixes.
No known bugs, but there are some for sure.
What's defitively missing right now it TLS (thread-local storage) support. It's not too easy to implement it well-supported on a VAX. Either you basically emulate all TLS calls, which is unneccessarily slow, or you waste a register as a TLS data pointer, which isn't good either, since the VAX only as 16 registers at all, with most of them having well-known fixed usage patterns.
Maciej W. Rozycki <firstname.lastname@example.org> has a somewhat working port of a not too-old GNU glibc finished. To get newer glibc versions up'n'running, some additional features need to get implemented: