That should work as the issue is probably the extra digits of precision on datetime2 aren't allowing it to be parsed correctly.
Try this to verify. If works, should work on insert too.
select convert(datetime, convert(varchar(23),timefield,121), 121)