I got your point. This time, I established my configuration like this:
TSSs: To target the exact TSSs, only considered one location and its 1 bp distance;
awk '$3 == "transcript" { if ($7 == "+") { print $1"\t"$4-1"\t"$4 } else { print $1"\t"$5-1"\t"$5 } }' hg38.refGene.gtf > exact.TSS
Heatmap generation: I pretty much used the computeMatrix in default settings, except that I added --referencePoint TSS and a piece of calmer color --colorMap 'Greens'
computeMatrix reference-point -S m7_rep1.bw -R exact.TSS --referencePoint TSS -o m7_rep1_matrix_TSS.gz; plotHeatmap -m m7_rep1_matrix_TSS.gz --colorMap 'Greens' -out m7_rep1_TSS_enrichment_heatmap_exact.png
where I think right now I am only considering the exact transcription start sites (correct positioning) and enrichment around TSS (correct labeling)
Now the result is:
To troubleshoot, maybe try separating the transcripts by strand, instead of mixing the two. In your awk statement, for instance, write one or the other strand if-else case and visualize that. This may help highlight the problem.
I concluded that I initially made the wrong configuration of TSSs initially; thank you so much for your directive reply.