The difference between ㅂ and ㅍ is the same difference between the Ps in spat (ㅂ) and pat (ㅍ). The latter has aspiration (more forceful with puffs of air). If you place your hand in front of your mouth and try saying spat and pat repeatedly you'll feel the difference.
A similar difference exists between stop (ㄷ) vs top (ㅌ) and skill (ㄱ) vs kill (ㅋ).
Also, fun fact, as the first letter of a word P/T/K in English sound like ㅍ/ㅌ/ㅋ but in Spanish they sound like ㅂ/ㄷ/ㄱ. You can even notice this difference in how each language calls each letter (피/티/케이 vs 베/데/가). As a native speaker of both this is one of the ways I identify Spanish accents in English and English accents in Spanish.
Yes, but "more forcefully" is very misleading to native English speakers (at least US English) because to a native English speaker, to pronounce voiceless stops more forcefully is to aspirate them even more heavily, whereas ㅃ and ㄸ aren't aspirated at all.
If I were to try to get a native English speaker to pronounce them more correctly, I would romanize them "pb" and "td" respectively, and say that you sort of "glide" from one sound into the next and pronounce it forcefully. The p or t as the initial stop makes it close to voiceless and create that "break of air" but the b or d as the second letter forces the speaker to not aspirate the sound like they inevitably would for romanizations like "kk" or "pp". So, "hamnikga" - not perfect, but an English speaker who reads that will get it closer to correct than one who reads "hamnikka" or "hamnigga"
Both 또는 and 아니면 mean "or" but 아니면 literally means "if not" so it can be used for slightly different emphasis. I think 또는 is also used more frequently in writing.
In my experience 아니면 puts preference to the first object. So like if someone asked what you want to eat you could say 피자 아니면 고기 implying that you want pizza but if not (perhaps if that's not an option) meat is also acceptable. Using 또는 feels like equal preference is given to both options and is more of a neutral "or".