It's unclear to me exactly what you want the arrays to look like, but perhaps pre-processing the input files to have all columns filled in helps:
awk -F'\t' -v OFS='\t' '
$0 != "" { # process only non-empty lines
# If field 1 is empty, set it to the most recent unit title.
if ($1 != "") ut=$1; else $1=ut;
# Print the (rebuilt) line.
print
}' tsvfile
This will result in something like (\t
represents a literal tab), which should make parsing easier:
Unit Title1\tTitle1\tFilename1
Unit Title2\tTitle2\tFilename2
Unit Title2\tTitle3\tFilename3
Unit Title2\tTitle4\tFilename4
Unit Title2\tTitle5\tFilename5
Unit Title3\tTitle6\tFilename6
Unit Title3\tTitle7\tFilename7
...