You must read the J1939 specification more carefully. PGN field is comprised of the PF and PS datafields, which you are setting to 0xEAFF, not 0xEE00.
To my understanding, the message length of the data must be 8 bytes for this message, ane must contain the NAME field content. You must specify the appropriate values for these 8 bytes.
As with all things CANbus, your device must monitor it as it transmits its message - if there is a conflict with another device it will cause one or more of the recessive bits in your message to be "stepped on" by a dominant bit (low bit) which could be another ECU which already has your requested address but which obviously has different name field contents. The message/name field allows for one or the other to "battle" to decide who gets the address - lowest message content (first dominant bit difference) generally wins. You must allow all 8 bytes of the msg/NAME field to be sent to give opportunity for another ECU to contest the address claim.
Look further in the link I posted for some of this information, though the specific contents of the NAME field are not provided there - you will have to find that elsewhere.
I've developed various protocols running on CANBus hardware, including CANOpen, DeviceNet, etc, but haven't personally used J1939, so some of these details you must research.