It turns out I almost had it right, but there was an issue in the generator expression in the custom target.
As suggested here, I had to change the whitespace with $<SEMICOLON>
So the add_custom_target becomes
add_custom_target(Merge${target}Libraries
COMMAND libtool -static -o ${destination} "$<GENEX_EVAL:$<JOIN:${TARGET_DEPENDENCIES},$<SEMICOLON>>>"
COMMAND_EXPAND_LISTS
DEPENDS ${target})