I’d have to check my iptables syntax again but I’m not sure you want the FORWARD between the networks unless C has a manual route to get traffic for the 192.168.15.0/24 network back via B. You just want to NAT A behind B’s IP on 192.168.38.0/24. I think the forwards are sending the traffic without doing NAT on A.
We need more information to recommend anything. Do you need high voltage switching? Do you have zigbee, zwave, or only wifi available? How much integration or local on device control do you actually want or need?