Here are some hints for a possible way to write the code:
Initialize the variables that will keep track of time and the number of infected. Ask the user for the population size, the percentage of the population initially infected, and the speed at which the people will be moving.
Keep track of time until the entire population is infected.
As you don't know ahead of time how many people sprites will be created, create a single sprite and then use the create a clone of myself block in Snap! to generate a population of size input by the user.
Initialize clones and give them behavior by using the when I start as a clone block.
Give the clones a sick or a healthy costume during their initialization. As the clones are being created, assign them sick costumes until reaching the user-specified percentage of the population initially infected.
Give a random direction and location to clones initially, but once the timing starts, clones should move in a straight line with the user-specified speed until they hit an edge and bounce.
If a healthy sprite collides with a sick one, it should get sick. To do this, write code to detect collision with a sick person:
Build this block instead of using the block of the Sensing menu because Snap! can be very slow in sensing touching by color but is very fast sensing touching by sprite.
Test your code to make sure that everything works as intended.