My first problem is that I can't even ping the VPN client's eth0 interface (192.168.100.112) from the VPN server (192.168.200.31). I can ping the tun0 interface (5.4.0.2) with no problem.
https://www.secure-computing.net/wiki/index.php/OpenVPN
see the settings that are for the clients, basically you will need iroute in a ccd entry (on the server, specific to the client), and a route entry for the server config (do not push these routes since you do not want them adding routes for eachother)
then you will push route for the server lan
all machines running openvpn for this purpose (server and clients) will need ip forwarding enabled.
I call this method of bypassing proper routing the "nat hack", and am usually against using it... but you seem to have found a rather valid reason for it.