1a and 1b are correct. Althought, Croatian grammar doesn't know formulation with "da li" (it should be jesam/jesi/je/jesmo/jeste/jesu li) but it's totally OK with "da li". With "je li" 1a should be: "Ne znam je li dao šešir.".
2a. Ne znam jesi li joj dao šešir (with "da li": Ne znam da li si joj dao šešir)
2b. Ne znam jesi li dao šešir (Ne znam da li si dao šešir)
3a. Ne znam kada si joj dao šešir.
3b. Ne znam kada si dao šešir.
So, let's say that you'll use form with "da li" (since you've learned this way):
- you ask should be "je" before "dao".
It should, but it's not always word "je". In your examples (1a and 1b) "je" is present form for 3. person singular of verb "biti" (to be).
Look how this "je" is changing with other persons:
I don't know whether I gave (her) the hat
Ne znam da li SAM (joj) dao šešir
I don't know whether YOU (singular) gave (her) the hat
Ne znam da li SI (joj) dao šešir
I don't know whether HE gave (her) the hat / I don't know whether SHE gave (her) the hat
Ne znam da li (joj) JE dao šešir / Ne znam da li (joj) JE dalA šešir
I don't know whether WE gave (her) the hat
Ne znam da li SMO (joj) dali šešir
I don't know whether YOU (plural) gave (her) the hat
Ne znam da li STE (joj) dali šešir
I don't know whether THEY gave (her) the hat
Ne znam da li SU (joj) dali šešir
You may notice that word „joj“ is in all sentences (except in sentences with HE and SHE) set between present forms of verb „biti“ (sam, si, smo, ste, su) and main verb „dati“. In grammar is written that enclitic „je“ (which is form for present, 3. person of singular, verb „to be“) should be last of all enclitics in sentences; why – I don't know.
This answer might be confusing, it wasn't my intention :)