My custom taxonomy is only displaying 1 of 3 terms

Inside your foreach loop you’re overwriting the value of $termlinks before you ever output the previous one:

foreach ( $terms as $term ) {
    $termlinks = get_term_link($term,$taxonomy);                                                
}

All that code will do is ensure that $termlinks is set to the last term in the $terms array.

It also means that when you finally output $term->name it will be the name of the last $term in the loops.

If you want to output for each of the terms you need to move the output to inside the loop:

foreach ( $terms as $term ) {
    echo '<a href="' . $termlinks . '">' . $term->name . '</a>';                                                
}