У вас на странице несколько элементов с одинаковым ID. С помощью getElementById() берется первый попавшийся. В вашем случае только первый sum_text и первый sum. Слушатель, следовательно, вешается только на него и меняется текст только в первом sum_text.
Выход - использовать метод, который возвращает коллекцию узлов, например, querySelectorAll, циклом повесить слушатель на каждый input, а с помощью уникального ID у узлов с текстом назначать нужный текст нужному блоку.