Some additional data from an installation suffering from this bug. When rendering the dashboard with a new user's seeded widgets, all rows and cols are 1, but the order of widgets returned from the database is the reverse of what you'd expect:
irb(main):008:0> User.first.widgets
=> #<ActiveRecord::Associations::CollectionProxy [#<Widget id: 12, user_id: 3, template: "distribution_widget", name: "Distribution chart", data: {}, sizex: 6, sizey: 1, col: 1, row: 1, hide: false, created_at: "2016-03-17 11:12:43", updated_at: "2016-03-17 11:12:43">, #<Widget id: 11, user_id: 3, template: "reports_widget", name: "Report summary", data: {}, sizex: 6, sizey: 1, col: 1, row: 1, hide: false, created_at: "2016-03-17 11:12:43", updated_at: "2016-03-17 11:12:43">, #<Widget id: 10, user_id: 3, template: "status_chart_widget", name: "Status chart", data: {}, sizex: 4, sizey: 1, col: 1, row: 1, hide: false, created_at: "2016-03-17 11:12:43", updated_at: "2016-03-17 11:12:43">, #<Widget id: 9, user_id: 3, template: "status_widget", name: "Status table", data: {}, sizex: 8, sizey: 1, col: 1, row: 1, hide: false, created_at: "2016-03-17 11:12:43", updated_at: "2016-03-17 11:12:43">]>
IDs are actually descending, and so the dashboard ends up "backwards", in the opposite order to the default widget registration order.