Place the beans into a large container and cover with several inches of cool water; let stand 8 hours to overnight. Drain and rinse before using.
Combine the soaked beans, 4 cups of chicken broth, celery, onion, carrots, bay leaves, cumin, and parsley into a slow cooker.
Melt the butter with the olive oil in a skillet over medium heat; cook and stir the leeks in the butter mixture until tender and the smaller pieces start to brown, 8 to 10 minutes. Add garlic and saute 2-3 minutes. Transfer the leeks and garlic to the slow cooker. In the same pan, cook and stir the ham until the edges start to brown; stir into the soup. Dice bacon into bite sized pieces. Place the bacon into the hot skillet, and pan-fry until the bacon is crisp, about 10 minutes. Pour 4 cups chicken stock into the hot skillet, and stir to dissolve any brown flavor bits from the skillet; pour the chicken stock into the soup. Add tomatoes. Season with sea salt and pepper.
Set the cooker to Low cook the soup until the beans are very tender, 6 to 8 hours. Roughly mash about half the beans with a potato masher to thicken the soup.