Undulatory microswimmers in complex environments: the effects of fluid composition, swimming gait, and swimmer interactions