Email address not displaying where I expect it to

This is wrong:

$emailaddress = the_author_meta('user_email',$author_id);

the_author_meta() will output the value as soon as it’s run, which is above everything else. If you want to put the value into a variable to echo later you should use get_the_author_meta():

$emailaddress = get_the_author_meta('user_email',$author_id);

The convention in WordPress is for functions beginning with get_ to return the value, while functions beginning with the_ to echo the value.