ffmpeg: Second lower third does not appear
The overlay filter syncs by timestamps i.e. it overlays 2nd input's frame with timestamp X on main input's frame with timestamp X.  Barring certain circumstances like the use of -copyts, timestamps start from zero. So, when your 2nd lower-third overlay enters its active timeline, there are no corresponding frames from the secondary input.

Solution: offset the input's timestamps to start from overlay start time.

ffmpeg -hide_banner -loglevel 56 -report \
    -ss 00:25:00 \
    -i 00005.MTS \
    -i ./constants/edu_logo.svg \
    -i ./constants/name_animation_dr_johnson.mp4 \
    -itsoffset 15 -i ./constants/name_animation_dr_halmilton.mp4 \
    -filter_complex "[1:v]scale=400:122[logo]; \
    [0:v][logo]overlay=x=main_w-overlay_w-80:y=main_h-overlay_h-80[v-l]; \
    [v-l][2:v]overlay=x=0:y=0:enable='between(t,0,10.5)'[v-l-a]; \
    [v-l-a][3:v]overlay=x=0:y=0:enable='between(t,15,25.5)'[v-l-a-a]" \
    -vcodec libx264 -preset fast \
            -flags +cgop -pix_fmt yuv420p \
            -b:v 2M -movflags +faststart \
    -map "[v-l-a-a]" -map 0:a -t 30 my_test.mp4