Ксения, привет!
Между этими словами есть разница в происхождении и в употреблении.
Semi- это префикс латинского происхождения, и употребляется со словами, также пришедшими из латыни, например, semicircular.
Demi- французского происхождения, пришло вместе с другими словами оттуда же: demi-season.
Hemi- из греческого. Приставляется к греческим словам: hemisphere.
Префикс half- не был заимствован в готовых словах с префиксом, поэтому наиболее универсален.
Но все равно, где устоялись semi-, Demi- и hemi-, лучше использовать их.
Надеюсь, смогла вам помочь :)