One tentative answer, which supposes Q's representation is not 13. So I may be wrong....
First rule: The first (or unique) character is the hex representation of Morse code of the letter, converted to binary. Using dash==1 and dot==0
For example: B:- ... == 1000 == 0x8
Note that every letter is represented by at most 4 characters in morse code, so we can always convert a letter to an hex digit.
2nd rule: If the morse representation starts with a dash, we've finished.
3rd rule: If morse representation starts with dots, we must declare how many dots are the beginning of morse code.
This is encoded as a 2nd character, using A for 1 dot, B for 2 dots, C for 3 dots and D for 4 dots
For example, H = .... (0) starts with 4 dots (D) So code is 0D
or I = .. (0) starts with 2 dots (B) Code is 0B
Based on this rules, the missing letters are encoded as follow
C: -.-. -> A (starts with a -, no second character)
E: . (0) 1 dot start(A) -> 0A
S: ... (0) 3 dots start (C) -> 0C
A: .- (1) 1 dot start (A) -> 1A