That's perfectly normal.
When you ping 10.0.1.3
you emit a ICMP echo request packet with source address 192.168.1.2
and destination address of 10.0.1.3
, and expect a response with source address 10.0.1.3
/ destination address 192.168.1.2
When the computer B responds, it sends a response to 192.168.1.2
.
Since it has an interface in the same network, with it's IP 192.168.1.3
, it sends the response trough this interface, so the ICMP echo reply message is sent with source address 192.168.1.3
/ destination address 192.168.1.2
.
Computer A does receive the response but it's not the expected source address, so it does not associate it with the initial echo request.
Now if you turn off the interface 192.168.1.3
, the response is sent trough the other interface with the correct IP address.
Concerning how to solve the situation, it all depends on why you do have computer B multi-homed (I.E. connected to several networks). It's better in most case to avoid this kind of setup.
One way to do it would be to NAT the 10.0.1.X
address to 192.168.1.x
address for example.