If I make an identical content type (For example by duplicating 'Document' and name it 'Boat Page'.
Would it be possible to change the content type by JUST changing obj.portal_type and rebuilding indexes? (or is it necessary to make a new item/copy everything over)
(I want to search for Pages (documents) with keyword (Subject) 'Boat' and change them to 'Boat Page'
No, this not sufficient because the underlying Python pickle within the ZODB contains a reference to the class definition. It's doable with some magic, but not with easy magic. It might be possible to use plone.api for search all related Documents, preserve the metadata, delete the documents and recreated them under a new portal type with the preserved metadata...workflow state must restored, perhaps other metadata too...
I did test, duplicated Page TTW and named it 'ship' on one Document and just changed it's portal type to 'ship', and it seems to 'work'. As far as I know, they will have the same the same classes (when duplicated TTW) (?))