In a bowl, mix together half of the onion, half of the garlic and lime juice. Add the fish and toss to coat. Cover with plastic wrap and let it marinate in the fridge for 1 hour.
Heat the oil and add the rest of the onions, tomatoes, bell peppers, scallions and the rest of the garlic, cook for about 5 minutes over medium heat.
Add the coconut milk, cumin and achiote to the tomato mixture, stir and cook for about 8 minutes. Add the fish, cover the pan, reduce the heat to low, and simmer for about 10 to 15 minutes. Add the shrimp and cover partially and let simmer for about 10 minutes more or until the fish is soft and the shrimp is cooked. Season with salt and pepper. Add fresh cilantro and serve with rice on the side.