Is the AJAX from image fields and multi-line fields breaking my JavaScript?
Would this have something to do with Drupal 8's AJAX updating those
  fields?


Yes, you need to add 

Drupal.behaviors

In order for your Drupal JS code to be able to run after AJAX.


  using the functionality of Drupal.behaviors and once(). If used
  properly this will ensure that your code runs both on normal page
  loads and when data is loaded by AJAX (or BigPipe!)
  
  Any object defined as a property of Drupal.behaviors will get its
  attach() method called when the DOM has loaded both initially and
  after any AJAX calls.


I suggest you read the Javascript API Overview.



Alternatively, If you don't want to use Drupal.behaviors, I believe if you change all the .addEventListener to .on that will also do.