In a deep pot over medium heat, combine beef tongue and enough water to cover. Bring to a boil for about 10 to 15 minutes, skimming scum that may float to top. Drain tongue and rinse well. Discard liquid and wash pot.
Return tongue to pot and add enough water to cover. Add onions, garlic, bay leaves, peppercorns, and salt. Over medium heat, bring to a boil. Lower heat, cover, and simmer for about 4 to 5 hours or until meat is fork-tender. Add more water as needed.
Drain the cooked tongue from liquid, reserving 1 cup of the broth. Strain and discard aromatics.
Allow tongue to slightly cool and refrigerate for about 1 to 2 hours or until completely cooled. Peel the skin and cut meat diagonally into ½-inch slices.
In a skillet over medium heat, heat oil. Add potatoes and cook until lightly browned and cooked through. Remove from pan and drain on paper towels.
Remove excess oil from the pan except for about 2 tablespoons. Add mushrooms and cook for about 1 minute. Remove from pan and set aside.
Add the chopped onions and minced garlic and cook until softened.
Add tongue and cook for about 3 to 4 minutes or until lightly browned.
Add tomato sauce, reserved broth, and soy sauce, stirring well to combine. Bring to a boil.
Lower heat, cover, and continue to cook for about 10 to 15 minutes or until sauce is slightly reduced.
Add sugar and stir to combine. Season with salt and pepper to taste.
Add potatoes and mushrooms and continue to cook until tender and sauce is thickened. Serve hot.