Le forward est bien activé des 2 côtés, je l'ai forcé dans sysctl.conf bien qu'il soit déjà activé au démarrage.
Je ne sais pas où j'ai pu merder, j'ai revérifié des dizaines de fois, ça commence à me rendre fou.
root@wgvpnlpa:~# sysctl -a | grep net.ipv4.ip_forward
net.ipv4.ip_forward = 1
root@wgvpnlhst:~# sysctl -a | grep net.ipv4.ip_forward
net.ipv4.ip_forward = 1
root@wgvpnlhst:~# ip route
default via 192.168.2.1 dev ens18 onlink 
172.16.0.0/24 dev wg0 proto kernel scope link src 172.16.0.1 
192.168.1.0/24 dev wg0 scope link 
192.168.2.0/24 dev ens18 proto kernel scope link src 192.168.2.2 
root@wgvpnlpa:~# ip route
default via 192.168.1.1 dev enp0s3 onlink 
172.16.0.0/24 dev wg0 proto kernel scope link src 172.16.0.2 
192.168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.8 
192.168.2.0/24 dev wg0 scope link 
# SiteB
[Interface]
Address = 172.16.0.2/24
PrivateKey = (hide)
#ListenPort = 51820
MTU = 1420
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o enp0s3 -j MASQUERADE
# SiteA
[Peer]
PublicKey = xxx
AllowedIPs = 192.168.2.0/24, 172.16.0.1/32
Endpoint = siteA.dyn.net:51280
PersistentKeepAlive = 25
Tout à l'air d'aller bien coté serveur : 
root@wgvpnlhst:~# wg
interface: wg0
  public key: (hide)
  private key: (hidden)
  listening port: 51280
peer: SiteA
  endpoint: 90.14.2.x:59713
  allowed ips: 192.168.1.0/24, 172.16.0.2/32
  latest handshake: 8 seconds ago
  transfer: 648 B received, 1.80 KiB sent
peer: Android
  endpoint: 77.136.85.24:40246
  allowed ips: 172.16.0.3/32
  latest handshake: 1 minute, 39 seconds ago
  transfer: 183.21 KiB received, 1.18 MiB sent