Pagination with custom query (not using posts)

It looks like you’re trying to use get_terms() in the same way that you would use WP_Query() which you can’t do.

'paged'    => $per_page

This is not a valid argument to pass to get_terms()

Also each post type has a rewrite rule to allow for pagination e.g. /2/, however that’s not the same with terms, therefore WP is going to 404 it (it’s only displaying index.php because you don’t have a 404).

Unless you want to create your own pagination (using rewrite rules), the focus of the loop must be a post of some kind, not a term – so maybe it’s best to think if there’s a better way of doing this based around that.