Dipende. Un TCHAR è un char o un wchar_t a seconda che compili in ANSI o Unicode; un BYTE è un unsigned char.
Ora, se compili ANSI la conversione char => unsigned char è diretta (basta un cast); se invece il TCHAR è in realtà un wchar_t la conversione dipende da diverse cose:
- vuoi fare un "dump" del wchar_t in byte? Allora devi copiare il byte alto e il byte basso del wchar_t in due BYTE separati;
- vuoi scrivere una stringa Unicode "wide" (UTF-16) in un encoding a byte singoli? Allora devi convertire in UTF-8 (per cui un wchar_t può diventare fino a tre BYTE, e se hai due wchar_t che formano una coppia surrogata li devi processare insieme per ottenere un output sensato).

Ergo: spiega meglio la situazione.