register_if_fencing_device() calls get_meta_attributes() to unpack a resource's meta-attributes given a node for rule evaluation purposes. The meta-attributes were already unpacked without a node when the resource was unpacked. get_meta_attributes() will not overwrite existing values, so most likely any rule-based attributes will not take effect if there is a non-rule-based value already present.
This needs to be confirmed, then the fix would be to empty the existing rsc->meta table before unpacking it again.