In a large pot over medium-high heat, boil the fish and fish heads in the water for about 20 minutes, or until the fish is tender. Turn off the heat. Remove the fish and set the broth aside.
Carefully separate the fish bones from the meat. Reserve the broth. Sprinkle ¼ teaspoon salt over the fish meat and set aside. Discard the fish bones and heads.
Strain the fish broth into a clean pot to remove any small bones.
Add the garlic, squash, carrot, potatoes, cubanelle pepper, onion, celery, culantro, cilantro, bouillon, oregano, fideos, remaining salt, and black pepper. Cook uncovered over medium-high heat for 20–25 minutes, until the vegetables are tender.
Transfer the garlic, cubanelle pepper, onion, celery, culantro, cilantro, and half of the squash to a blender and puree until smooth. Stir the puree back into the pot.
Add the cooked fish and stir to combine. Stir in the bitter orange juice and season with additional salt and pepper to taste.
Serve hot in soup bowls with avocado.