Я уверен, что все, что вам нужно сделать, это изменить
public_ip_address_id = ["${element(azurerm_public_ip.publicip.id, count.index)}"]
на
public_ip_address_id = ["${azurerm_public_ip.publicip[count.index].id}"]
В общем, ссылки типа azurerm_public_ip.publicip.id
работают для отдельных ресурсов (то есть тех, которые не используйте счет). Таким образом, использование element
предполагает использование единственного ресурса. Как только count
используется, ресурсы начинают вести себя как списки и должны рассматриваться как таковые.