Problém je na straně ISP a jedině on ho může opravit. A chápu, že měnit ISP se vám nechce, ale zauvažujte o tom, protože to pravděpodobně není nějaký zapeklitý ojedinělý problém, ale nepochopení základních mechanismů, které ten ISP ve své síti používá.
Ten ISP pravděpodobně používá NAT 1:1 a někde na hlavním routeru mapuje tu veřejnou IP adresu na vaši privátní. Když se chce připojit soused (nebo někdo připojený ke stejnému ISP), paket od něj dorazí na hlavní router ISP, tam se provede DNAT a paket směřuje na váš počítač. Přitom má stále zdrojovou IP adresu toho souseda. Váš počítač odpoví, a odpověď pošle na tu IP adresa souseda. No, a routery v síti vašeho ISP vědí, že je to adresa souseda, tak ten paket pošlou jemu, k tomu NATu se vůbec nedostane. Takže ten počítač souseda dostane "odpověď" na svůj požadavek, ale nedostane ji z vaší veřejné IP adresy, ale z privátní. No a na tu samozřejmě nic neposílal (a nemá si to jak spojit se svým požadavkem), takže paket zahodí, protože nepatří do žádného jemu známého spojení.
Můžete si to i sám otestovat - na rozhraní k vašemu "ISP" si pusťte tcpdump a od toho souseda iniciujte navázání spojení na tu veřejnou IP adresu. Uvidíte, že přijde paket se zdrojovou IP adresou souseda a jako cílová bude vaše privátní IP adresa. Váš počítač vytvoří odpověď, ve které bude jako zdrojová IP adresa vaše privátní a jako odchozí adresa souseda. Když byste měl zároveň spuštěný tcpdump u souseda, uvidíte, že k němu tenhle paket dorazí - ale protože nepatří k žádnému známému spojení, jádro jej zahodí.