Really interesting. This is mainly due to the parsing expecting a node Yield call function. I'll check this internally, meanwhile, considering you are changing into a label, removing also the type will make it work.
:auto MATCH (n:TempNode)
CALL {
with n
CALL apoc.create.setLabels( n, [ n.type ] ) YIELD node
remove n.type
} IN TRANSACTIONS;