MySQL 5.6 "temporal columns" upgrade - datetime etc. I upgraded from MySQL 5.1 to 5.6.17. Now in Wordpress plugins some of my timestamp columns have started behaving strangely. 

MySQL documentation on this very critical feature enhancement (decimals in timestamp fields) is sloppy. SO one relies on blogs/websites. 

Some websites such as this recommend ALTER TABLE...FORCE. 

But this did nothing for the older data. Some tables which rely on the uniqueness of the timestamp field, now have ".0000" in the 4 digit suffix. Even the ALTER TABLE FORCE didn't change that data. 

Any ideas on what we can do instead of manually tinkering with the timestamp fields? Thanks!
There are two things here, updating the table structure to 5.6 format and handling the new features.

For the upgrade, run the mysql_upgrade script to check for format incompatibilities. For those tables that it tells you to REPAIR them, run REPAIR TABLE your_table if they are MyISAM and ALTER TABLE your_table ENGINE=InnoDB if they are InnoDB. That will reconstruct those tables (they will be locked while that happens) to avoid any incompatibility issues.

Once you have done that, in relation to temporal SQL changes, the idea is that a TIMESTAMP (and DATETIME, TIME) is now really a TIMESTAMP(0). You can also create TIMESTAMP(n), where n is the number of decimals. That shouldn't tamper any uniqueness of time fields, but you must understand that functions like seconds() can return now a decimal, not an integer. 

The other change, making TIMESTAMPs not "DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP" are not enabled by default (they mimic the old behaviour). But it is deprecated and can be disabled with the variable explicit_defaults_for_timestamp.

Relaying on now() for creating unique keys is and was already a broken design, because you can insert two rows on the same second. You shouldn't do that.