router B sits between Routers A and C and is connected to both via international serial links. As a backup there is a GRE tunnel across the internet between routers A and C. Router A has a private LAN on Area 0 but everything else mentioned here is in Area 3.
Router A's private LAN is visible by all routers however Router C's private LAN is neither visible by routers A nor B.
Configuration looks OK. Do you have a static route to 10.5.4.0/24 on Router B? If you do then can you remove the static route and the OSPF route would be installed in the routing table.
If you aren't using static routes can you post the output of 'show ip ospf database router 10.5.4.1' from Router B.