The error message does not come from valgrind, but from the libc. According to [0], FreeBSD fully supports TLS only on i386 and ia64 which kinda explains why your amd64 build does not run (that page looks old though). Try disabling TLS explicitly on the valgrind build by passing --disable-tls to ./configure.
The TLS is fully supported on both kfreebsd-amd64 and kfreebsd-i386. Moreover, I expect the [0] is simply outdated for plain FreeBSD.
[0] https://wiki.freebsd.org/ThreadLocalStorage
In the valgrind_kfreebsd.patch patch, the path to elf_interp[] is wrong. It should be "/lib/ld-kfreebsd-x86-64.so.1" for kfreebsd-amd64 and "/lib/ld.so.1" for kfreebsd-i386. Petr