Urogenital schistosomiasis is a tropical disease infecting more than 100 million people in sub-Saharan Africa. Individuals in endemic areas endure repeated infections with long-lived schistosome worms, and also encounter larval and egg stages of the life cycle. Protective immunity against infection develops slowly with age. Distinctive age-related patterns of infection and specific antibody responses are seen in endemic areas, including an infection peak shift and a switch in the antibody types produced. Deterministic models describing changing levels of infection and antibody with age in homogeneously exposed populations were developed to identify the key mechanisms underlying the antibody switch, and to test two theories for the slow development of protective immunity: that (i) exposure to dying (long-lived) worms, or (ii) experience of a threshold level of antigen, is necessary to stimulate protective antibody. Different model structures were explored, including alternative stages of the life cycle as the main antigenic source and the principal target of protective antibody, different worm survival distributions, antigen thresholds and immune cross-regulation. Models were identified which could reproduce patterns of infection and antibody consistent with field data. Models with dying worms as the main source of protective antigen could reproduce all of these patterns, but so could some models with other continually-encountered life stages acting as the principal antigen source. An antigen threshold enhanced the ability of the model to replicate these patterns, but was not essential for it to do so. Models including either non-exponential worm survival or cross-regulation were more likely to be able to reproduce field patterns, but neither of these was absolutely required. The combination of life cycle stage stimulating, and targeted by, antibody was found to be critical in determining whether models could successfully reproduce patterns in the data, and a number of combinations were excluded as being inconsistent with field data.